Zen Coding 1.2
Очередная порция исправлений ошибок, новых возможностей и прочих приятных изменений пакетов Zen CSS и Zen HTML, а также новый способ их распространения.
Главное изменение связано с открытием филиала проекта на Google Code — Zen Coding. Теперь следить за появлением новых версий станет проще, а получить их можно будет двумя способами: по старинке — скачав и распаковав архив, либо при помощи svn, что позволит удобно следить за внесёнными изменениями.
С первым способом всё понятно — архиватором умеют пользоваться все, поэтому вы знаете, что делать с последними версиями пакетов на странице загрузки. Второй способ чуть сложнее: если вы работаете под Mac OS X, то всё необходимое для работы с svn в вашей системе уже есть, однако можно пойти дальше и установить замечательное приложение Versions или воспользоваться встроенной поддержкой svn в редакторе Coda. Я же опишу простейший способ — при помощи Терминала, стандартной программы Mac OS X.
Для начала откройте Терминал, набрав его название в Spotlight — по-русски или по-английски, в зависимости от языка системы. Дальше всё удивительно просто: при помощи первой команды вы переходите на рабочий стол, при помощи второй — скачиваете на него свежую версию пакета:
cd ~/Desktop/
svn co http://zen-coding.googlecode.com/svn/trunk/ .
Если же вы работаете под Windows, то могу предложить вам воспользоваться утилитой TortoiseSVN — тоже не менее простой в обращении. Так, с контролем версий разобрались, переходим к списку изменений:
Zen HTML
Система комбинаций E+n, которая разворачивала селекторы с необходимым количеством детей (от одного до пяти) была полностью заменена техникой, которая позволит быстрее набирать любые последовательности списков для элементов <li>
, <th>
, <td>
и <option>
. Суть техники заключается в том, что нажатие клавиши Tab после каждого закрывающего элемента будет создавать новую строку и следующую пару элементов. Таким образом, кобинация li Tab Значение Tab Tab Значение создаст нам такую конструкцию:
<li>Значение</li>
<li>Значение</li>
Поясню: первый Tab
создаст нам первый <li>
, второй выведет курсор за его пределы, а нажатый тут же третий, создаст новую строку со вторым <li>
. Так можно продолжать довольно долго, процесс завораживает своей простотой. Далее — небольшие изменения:
- Элемент
<br>
теперь можно вставить не только комбинацией br+Tab, но и более удобной и понятной Shift+Enter. - Для оборачивания выделенного фрагмента в нужный элемент, появились сочетания Ctrl+W — для однострочного заворачивания и Ctrl+Shift+W — для многострочного. По умолчанию, оборачивающим элементом становится
<div>
, но вы тут же можете изменить его, причём сразу в открывающем и закрывающем тегах.
Zen CSS
Новая версия этого пакета также обзавелась механизмом быстрого набора длинного списка свойств, без необходимости вручную создавать новую строку. Теперь по сочетанию ;+Tab, т.е. после каждого закрытого правила, автоматически вставляется перевод строки. Например, комбинация fl:l Tab Tab b:n Tab Tab c Tab создаст нам следующий код:
float:left;
border:none;
color:#FFF;
То есть: первый Tab создаёт свойство, а следующий новую строку и всё по новой. Если же свойство разворачивается с предустановленными значениями, то вам сначала придётся пройтись по ним, а потом уже выйти за пределы правила и создать новую строку.
Также, по многочисленным заявкам, была введена специальная переменная, которая регламентирует появление пробела в правиле после двоеточия и до значения. Таким образом, вы можете продолжать использовать все удобства этого пакета, не меняя коренным образом свои правила форматирования кода. Устанавливается эта переменная настройках TextMate: Preferences → Advanced → Shell Variables → Variable: TM_CSS_SPACE
, Value: [пробел]
. Далее — небольшие изменения:
- Для свойств
top
,right
,bottom
иleft
всё-таки были введены сокращения: t, r, bo и l, соответственно. Символ b остался за свойствомborder
по причине многочисленных сочетаний с ним связанных, а так же более частой употребимости. - Регулярное выражение, подсвечивающее HTML-селекторы в CSS-коде, стало регистронезависимым, поэтому теперь подсвечивается как строчное, так и прописное их написание. Что опять же добавляет пакету гибкости.
- Для более точной и логичной работы всех предусмотренных подстановок, было удалено автоматическое дополнение двоеточия точкой с запятой —
:;
. В ситуации, когда пакет предлагает все необходимые своства и значения, данная потеря не кажется мне столь ощутимой.
Итак, напоминаю — пакеты теперь можно скачать на странице проекта в Google Code или через svn-репозитарий, а я с интересом жду ваших отзывов, замечаний и, самое главное, — предложений.
Комментарии
31Теперь я мечтаю о том, чтоб кто-нибудь это все для коды переделал :)
Супер ! Спасибо большое за новую версию. Однако, есть одно серьезное предложение: почему бы не использовать для размещения проекта github ? Там намного более удобно следить за версионностью + многие люди (включая меня) смогут получить возможность по удобной модификации вашего замечательного пакета в идеальный для нас всех продукт.
Я так и думал, что цепочки элементов по табуляции вам понравятся :-)
Рад, что вы включили их в свой набор снипетов.
Спасибо, ваши статьи дают хорошие подсказки, как можно оптимизировать работу и в других редакторах.
ever.zet, я бы с удовольствием положил проект на GitHub, если бы понимал ценность данного действия. Мне кажется, что svn в данной ситуации проще и понятнее для большинства, и точно также позволяет организовать совместную разработку, если найдутся желающие.
На github'е на данный момент покоятся почти все бандлы. Плюс имеется средство для их быстрого поиска/установки прямо из редактора.
http://blog.macromates.com/2008/bundles-and-github/
Я не очень понимаю зачем мне нужно держать один репозитарий для тех, у кого есть Git, второй для тех, у кого есть только svn, а ещё контролировать актуальность просто-архивов. Сложновато, не находите? Отчасти потому, что у меня самого не было повода пользоваться Git'ом и не думаю, что в ближайшее время появится.
Ну а бандлы можно: а) коммитить прямо в нужную папку, мёржа по дороге б) запускать как .tmbundle файлы — тогда TextMate сам их смёржит.
В общем, Git — хорошо, но пока непонятно зачем.
Вадик, а для простых смертных ты что-нибудь пишешь?
Ань, статус™ не позволяет ;)
github сейчас просто модный.
Не могу не напомнить что тег br можно вставить комбинацией ^+Enter в стандартной бандле. Там же для оборачивания тегов ^⇧W.
Дима, я знаю, просто Ctrl + Enter слишком уж далеко разнесены (если речь про компактные клавы с одним Ctrl слева), а Ctrl+Shift+W я предпочёл расширить — хотя то оборачивание, что в итоге получилось, мне не слишком нравится (
Pepelsbey, предыдущие "проблемы" для e-texteditor я решил так как и предлагал (вручную добавил слеши и изменил в некоторых местах регистр буквы с которой начинается атрибут свойства, например ta:c заменил на ta:C, d:b на d:B). Ещё один вопрос, в e-texteditor невозможно обернуть в какой-нибудь тег ни одну строку (потому что Ctrl+W вызывает закрытие вкладки), ни несколько строк (в "e" на это сокращение по-умолчанию установлено выделение одного слова). Может быть вы подскажите, где можно изменить это сокращение на свое? Спасибо.
Сокращения Ctrl ( + Shift) + W я наверное совсем исключю из следующей версии, как-то скверно они работают. А изменить комбинации клавиш просто: нужно выделить команду и ввести нужное сочетание. По крайней мере так дело обстоит в TextMate…
В остальном — прописные буквы-модификаторы слишком уж неудобны, поэтому разве что делать отдельную ветку для E. Я наверное всё-таки попробую поставить его на виртуальную машину и посмотреть как там всё работает.
pepelsbey, а вы точно включили в версию 1.2 "оборачивающую" команду. Я просто не могу её найти.
Если будет ветка для E будет здорово. =) Спасибо.
огромное спасибо за труд! более-менее в Е работает )
а делать отдельную ветку для E очень хорошая идея!
pepelsbey, ещё предложение небольшое для улучшения - ввести сокращение для оборачивания выделенного фрагмента текста/кода в комментарии. Как думаете?
~ZORRO~ ⌘/ и ⌘⌥/
да ветку для Е это было бы круто, увы не все работают на маке!
большое спасибо за новую версию. Обращаюсь ко всем пользователям E. У меня возникли некоторые проблемы:
1. Скопировал себе HTML Zen 1.2, при подставке, скажем, div tab выводиться меню, спрашивающее каким бандлом пользоваться HTML Zen или HTML. Я решил эту проблему путем отключения HTML в Manage bandles, но может это делается не так?
2.
у меня к сожалению третий таб не срабатывает.
P.S. ветка для E? очень жду )
Да, одновременная работа двух пакетов для одного языка практически невозможна, так что стоит определиться )
Разобрался во второй проблеме — конструкция не срабатывает, т. к. в Е li:next подхватывается только если перед закрывающим тегом стоит пробел ( li Tab Значение Пробел Tab Tab Значение )
~ZORRO~, в Е сочетания Ctrl (+Shift) +W заменены на Alt (+Shift) +W
Ещё раз здравствуйте, вот решил снова спросить и посоветовать. В стандартном пакете хтмл есть команды которые вставляют код при перенесении файла в открытое окно, например при перенесении картинки в открытое окно будет вставляться код с полным путем для картинки. Так же и в цсс. Ещё есть возможность для проверки валидации кода прямо в окне программы и возможность перезагружать браузеры, в которых открыт файл прямо из программы, например нажимаешь сочетание, файл сам сохраняется и происходит перезагрузка окон браузеров, так что можно сразу смотреть результат. К сожалению работает последнее только под маками, а на форуме Е готового решения нету (или я с ними не разобрался).
Хочется узнать, будет ли это включено в новые версии, ну и когда уже ждать их? =)
Следующая версия скорее всего будет техническим обновлением, без фич, но с багфиксами. А скоре появится пост с обсуждением версии Zen Coding 2.0, которая сильно будет отличаться по механизму обработки сокращений. В планах также более широкая поддержка CSS 3 и HTML 5.
Насчёт указанных фич — ничего не мешает вам копировать их из существующих оригинальных бандлов, тем самым дополняя Zen'овские.
Может сломалось чего или винды стали понимать разделители в виде двоеточия в именах файлов?
http://floomby.ru/content/7k8MaMt7ck/
проверил, на всякий случай - не аллё
http://floomby.ru/content/PqJqFS7xBU/
С Windows-путями тут конечно большая проблема, поскольку TextMate не слишком заморачивается с именами снипетов. На ум приходит только выпускать отдельную версию для Windows, которая не содержит такого криминала.
Добрый день.
А существует аналог TM_CSS_SPACE в плагине под эклипс?
Здравствуйте!
1. Подскажите пожалуйста как в ZenCoding имея такие три строки
item1
item2
item3
сделать
2. как добавить свой (шорткат) или как называется, свою аббревиатуру которая будет например вставлять какой-то мой код
3. как сделать похожее первому ul>li>a>item
item просто текст, такой код в итоге
Смотрел видео, там 1,2 увидел как делается но там не показаны горячие клавиши как были вызваны окна :(
Заранее спасибо!
Спасибо Вадим за помощь с постом, а Вы не подскажите? Вы ведь автор этого детища, наверняка вы все о нем знаете :) Или тут зависит от используемой IDE? Я использую webstorm.
Валера, боюсь, что Zen Coding всё-таки танцует от кода, а не от содержимого. Но насколько я знаю, Сергей Чикуёнок написал некоторые фичи, зависящие от редактора, например Wrap with Abbreviation.
Спасибо, я даже не думал что тот ролик который смотрел ранее Сергей записывал, только что нашел на его канале или профайле(как правильно не знаю) vimeo.
Это видео ZenCoding минута 2:20 начинает делать о том что я спрашивал.
Там как раз вызывается окно аббревиатур..., спасибо за ссылку сейчас изучу, сам не нашел бы никогда, так глубоко!
Позавчера нашел Ваш канал pepelsbey , классно что есть такие люди которые что-то рассказывают интересное делятся своими наработками и опытом, спасибо большое!
Правда оператор, или тот кто держал камеру, на видео "Динамическая графика", он то панель вообще не снимал, когда Вы показывали примеры и код, а если снимал то ничего не видно было.. Какой то !молодец самое главное звук был и слава Богу.
Ну а сам рассказ вышел интересным, первый раз познакомился с SVG и canvas. Думал эти технологии намного сложнее.