Основываясь на отличном ответе @KeithPinson (извините, недостаточно очков репутации, чтобы прокомментировать ваш ответ), эта альтернатива предотвратит копирование при автозаполнении чего-либо дополнительного, что может быть внутри тега html (например, классов, идентификаторов и т. Д. .), но не должны копироваться в закрывающий тег.
ОБНОВЛЕНИЕ Я обновил свой ответ для работы с filename.html.erbфайлами.
Я заметил, что мой исходный ответ не работал с файлами, обычно используемыми в представлениях Rails, например, some_file.html.erbкогда я использовал встроенный ruby (например <p>Year: <%= @year %><p>). Приведенный ниже код будет работать с .html.erbфайлами.
inoremap ><Tab> ><Esc>?<[a-z]<CR>lyiwo</<C-r>"><Esc>O
Пример использования
Тип:
<div class="foo">[Tab]
Результат:
<div class="foo">
|
<div>
где |указывает положение курсора
И в качестве примера добавления закрывающего тега в строку вместо стиля блока:
inoremap ><Tab> ><Esc>?<[a-z]<CR>lyiwh/[^%]><CR>la</<C-r>"><Esc>F<i
Пример использования
Тип:
<div class="foo">[Tab]
Результат:
<div class="foo">|<div>
где |указывает положение курсора
Верно, что оба приведенных выше примера полагаются на то, >[Tab]чтобы сигнализировать о закрывающем теге (это означает, что вам нужно будет выбрать либо встроенный, либо блочный стиль). Лично я использую блочный стиль >[Tab]и встроенный стиль с >>.
Ctrl-_, но это делает мой терминал мелким шрифтом.