Как я могу переопределить сопоставления ключей плагинов?

21

Я установил плагин, который не предоставляет механизм для отключения определения клавиш, которые он определяет. Я хочу переопределить одно из сопоставлений ( <leader>cc), определенных плагином для моей собственной цели, я попытался добавить следующую строку в свой .vimrc:

noremap <leader>cc echo "my purpose"

Но это не работает, <leader>ccвсе еще выполняет команду плагина.

Как я могу определить свое отображение, чтобы оно переопределяло те, которые определены плагином?

toro2k
источник
один (по общему признанию, не очень
хороший

Ответы:

20

Плагины поставляются после вашего, vimrcпоэтому нет способа переопределить отображение плагинов в вашем, vimrcесли плагин не предоставляет способ сделать это.

Размещение пользовательского сопоставления ~/.vim/after/plugin/mystuff.vim(имя файла не имеет значения) должно позволить вам переопределить сопоставление плагинов.

romainl
источник
1
Делать это не работает для меня. Я map <C-l> somethingпомещаю туда, и это все еще отменяется Pydocstring.
oarfish
Есть ли способ сделать это, что специфично для типа файла (например, ftplugin)?
Стивен Лу
Кроме того, согласитесь, это даже не работает.
Стивен Лу
20

Как уже упоминалось в других ответах, плагины получают после того, как vimrc завершен.

Если вы хотите сохранить переопределения в вашем vimrc вместо того, чтобы использовать плагин after, вы можете использовать этот «трюк» в любом месте вашего файла vimrc:

autocmd VimEnter * noremap <leader>cc echo "my purpose"

От :help VimEnter:

VimEnter: После выполнения всех действий при запуске, включая загрузку файлов .vimrc, выполнение аргументов "-c cmd", создание всех окон и загрузку в них буферов.

Таким образом, все, что вы вводите в автоматическую команду VimEnter, запускается после того, как Vim готов. Использование VimEnter таким образом позволяет сохранить все ваши сопоставления с другими параметрами , где вы привыкли держать их: vimrc.

Джон О'М.
источник