Основываясь на отличном ответе @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-_
, но это делает мой терминал мелким шрифтом.