Вопрос
Я пытаюсь настроить сопоставление ключей vim, которое будет сопоставлять ключ ';' с;- то естьЯ хочу автоматически добавить ';' в конец строки.Однако у меня возникают трудности с настройкой этого сопоставления.Я также хотел бы ограничить это только файлами java, если это возможно.Можно ли это сделать?
Спасибо
Решение
Само отображение выполняется таким образом:
:map ; A;<esc>
Я бы рекомендовал поместить эту строку в ваш .vimrc и жить с ней (это не должно вас беспокоить, поскольку сопоставление работает только в командном режиме).Если вам действительно необходимо ограничить такое поведение определенными файлами, вам нужно заглянуть в autocmd
функция (:help autocmd
)
Другие советы
Если вы хотите ограничить эту функцию буферами java, взгляните на ftplugins.Затем отображение становится:
nnoremap <buffer> ; A;<esc>
Кстати, я бы посоветовал не отображать на ';
' поскольку это очень полезная команда, которая может быть использована в других плохо определенных отображениях (слишком много виммеров используют :*map
вместо того , чтобы :*noremap
).
Используйте ftplugins , как сказал Люк Эрмитт , или добавьте следующее в свой файл .vimrc
autocmd filetype java :nnoremap <buffer> ; A;<esc>
Поместите это в ~/.vim/after/ftplugin/java.vim
nnoremap <buffer> ; A;<Esc>
Теперь это сопоставление должно быть локальным только для буферов java
В качестве быстрой реализации, как насчет:
map ; $a;cntl-vESC
затем нажмите кнопку вернуть
Я подумаю о том, чтобы включить это только для файлов Java.