Вопрос

Я пытаюсь настроить сопоставление ключей 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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top