Vim: Стань HTML-ниндзя с Emmet

Источник: «Become a Html Ninja with Emmet for Vim»
Мы рассмотрим несколько возможностей Emmet плагина для vim на конкретных примерах, и к концу этой статьи вы будете выдавать html-код, как по волшебству, и вам будет интересно узнать больше!

Вы, вероятно, читали, как много опытных виммеров проповедуют о чистоте vim и изучении нативных функций вместо установки плагинов, и это правильный образ мышления, имеет смысл избегать установки плагинов, которые не дают ничего, кроме встроенных функций vim в причудливом виде. Но, это не значит, что вам вообще следует избегать установки каких-либо плагинов!

Есть отличные плагины повышающие производительность и Emmet один из них.

Emmet - необходимый инструмент для веб-разработчика

Emmet - это плагин доступный для большинства текстовых редакторов и IDE, он предоставляет инструментарий, который вам понравится и вы никогда не откажитесь от него.

Мы рассмотрим несколько его возможностей на конкретных примерах, и к концу этой статьи вы будете выдавать куски html кода, как по волшебству, и вам будет интересно узнать больше!

Emmet magic

Инсталляция и настройка

В этом примере мы будем использовать Vim-Plug для инсталляции Emmet, но вы можете использовать менеджер плагинов на свой выбор.

Инсталляция

"-- PLUGINS (Using junegunn/vim-plug)
call plug#begin()
Plug 'mattn/emmet-vim'
call plug#end()

Настройка

Эта часть представляет личную конфигурацию, которую я считаю очень полезной, и думаю, что она может быть полезна вам.

Основная команда для выполнения магии Emmet в vim - это комбинация <C-y>,. Это означает, что вы должны нажать Ctrl + y за которыми следует , запятая. На мой взгляд, это слишком много даже для такой полезной функции, которая всегда должна быть под рукой.

Если вы читали документацию Emmet-vim, это побудит вас переопределить триггерную комбинацию (комбинация клавиш <C-y>). Я решил, что удобнее запускать его , (запятой, которая у меня так же <leader> клавиша).

По умолчанию клавиша <leader> назначена на \, но вы можете через команду :let mapleader = "," назначить другую клавишу (в данном случае , )

Вы можете это сделать добавив следующую строку в свой .vimrc-файл:

let g:user_emmet_leader_key=','

"-- EMMET CONFIG --
" redefine trigger key
let g:user_emmet_leader_key=','

Мы заменили комбинацию <C-y> на простую , (запятую)

Итак, моя команда для вызова магии Emmet: ,, (запятая запятая), простая и удобная для пальцев.

Давай попробуем

Как вы могли заметить на первой гифке, Emmet позволяет вам набрать сокращение, которое станет html-фрагментом.

Мы возьмём тот пример и разберём его шаг за шагом, что бы понять синтаксис и что происходит.

Emmet-vim предлагает команды, которые можно использовать как в режиме вставки, так и в нормальном режиме, но в этом примере мы сосредоточимся только на режиме вставки.

HTML шаблон

Первый базовый сниппет - это базовый html шаблон:

Emmet magic

Создание HTML тэгов по имени

На первой гифке после добавления шаблона html мы ввели странную команду, которая вставила <div> с множеством вещей внутри.

Давайте сфокусируемся только на теге <div>! Emmet создаёт тег из каждого имени, которое вы вводите, давайте попробуем:

...и давайте попробуем кое-что ещё:

Emmet magic

Да, вы можете использовать его со своими именами компонентов React.js!

Дочерний оператор

Следующим шагом, к нашей команде добавим дочерний оператор >, он используется для добавления дочернего html элемента, объявленного перед ним.

Давайте добавим <div> с <p> внутри, который содержит ссылку <a href="">

Emmet magic

Операторы атрибутов

Вы можете задать атрибуты для html элементов, как в CSS

Давайте попробуем в предыдущий пример добавить класс .container к <div> и идентификатор #foo к тегу параграфа.

Emmet magic

Оператор нумерации и умножения элементов

Последние неизученные элементы синтаксиса нашей странной команды на первой гифке, это нумерация элементов $ и оператор умножения *.

Вы, вероятно, уже использовали оператор умножения. Это довольно просто, вы используете его с числом после элемента, который хотите умножить. И он будет добавлен в том количестве, которое вы определили.

Допустим, вам нужен <div> с пятью <p> внутри, просто печатаете div>p*5:

Emmet magic

Итак, с помощью оператора умножения * вы можете повторять элементы, но с оператором $ вы можете нумеровать их. Поместите оператор $ внутри имени элемента, имени атрибута или значении атрибута, чтобы получить текущий номер повторяющегося элемента.

Давайте дадим предыдущим пяти <p>, разные идентификаторы #foo, с порядковым номером, что бы отличать их друг от друга:

Emmet magic

Поздравляю! У тебя получилось

Та команда из первой гифки больше не выглядит такой странной! Попробуйте сами и немного измените команду, что бы увидеть, что получится!

div>p#foo$*5>a

И хорошая новость в том, что это только начало того, что может предложить Emmet. Вы можете улучшить свои навыки написания HTML и React.jsx с помощью возможностей Emmet.

Вот пара ссылок, по которым вы можете найти более интересную информацию по этой теме:

Дополнительные материалы

Предыдущая Статья

Vim: 7 вещей, которые вы должны знать

Следующая Статья

CSS: Руководство по современным цветам