- работающего % для перехода между парными тэгами (как обычно он переходит между парными скобками),
- автоматического добавления закрывающих тэгов,
- быстрого окружения тэгом выделенного фрагмента.
- быстрого удаления окружающего тэга.
- кодирования и раскодирования HTML Entities («
>
» как «>
» и обратно)
Установка и настройка
Cкачать файл xml.vim, сохранить в~/.vim/ftplugin/xml.vim
, сделать на него символическую ссылку с ~/.vim/ftplugin/html.vim
. В ~/.vimrc
включить загрузку плагинов по типам файлов: filetype plugin onТеперь при открытии XML и HTML файлов будет включаться этот плагин.
Для кодирования HTML Entities поместить в
~/.vim/plugin/
файл htmlesc.vim.Использование
Переход между парными тэгами. Чтобы перемещаться между тэгами, поместить курсор внутрь тэга (например, на</div>
), нажать %, курсор переместится к парному тэгу (т.е. к <div>
).Вставка закрывающих тэгов происходит автоматически при нажатии >. Таким образом, набрав
<div>
мы получим: <div></div>При желании, можно переназначить комбинацию для автодополнения тэга. Для этого в
~/.vimrc
до загрузки плагина определяем переменную xml_tag_completion_map
. Например, так: let xml_tag_completion_map = ">>"— в этом случае закрывающий тэг появится только при повторном нажатии на >.
Окружение фрагмента тэгом тоже сразу работает. Достаточно выделить фрагмент и нажать \x. Программа спросит каким тэгом окружить и аккуратно вставит и открывающий, и закрывающий тэги.
Удаление тэга — обратная операция. Нажимаем \d и ближайший окружающий тэг будет убран, но весь текст внутри тэга останется нетронутым.
В последних двух командах можно вместо \ назначить любую другую клавишу. Почитать документацию по плагину:
:help xml-plugin.txt
.Кодирование и раскодирование HTML Entities. Для этого, напомню, мы используем скрипт ~/.vim/plugin/htmlesc.vim. Ctrl+h превращает нормальный текст в HTML («
>
» в «>
»), а Ctrl+u — обратно. Работает построчно.Другие способы
Есть плагин closetag.vim. Он просто добавляет команду, закрывающую тэги, команда привязывается к сочетанию клавиш и вызывается вручную. Использовать просто: Ctrl+_ — закрыть текущий тэг, это удобно, когда его текст тэга уже написан. Этот плагин я тоже использую.Есть отдельный скрипт, позволяющий окружать фрагменты текста тэгом. Примерно то же самое, что и \x в
xml.vim
.По теме
Выделение HTML-тегов, строк и блоков кода в VimКак быстро закомментировать/раскомментировать блок кода в Vim