Конфликт карт vim между vimrc и плагином

Я использую jedi-vim, Определяет карту ключей <Leader>n как некоторые команды, в то время как я также определяю это в файле.vimrc следующим образом.

nnoremap <Leader>n <C-w><C-w>

Но когда я набрал <Leader>n в файле Python, jedi#usages() Команда была выполнена.

:map <Leader>n возвращает:

n  <Space>n    *@:call jedi#usages()<CR>
n  <Space>n    * <C-W><C-W>

Я также пытался разархивировать <Leader>n прежде чем я определил карту. Однако возникла ошибка, сказав, что ничего не определено.

Как избежать этого конфликта?

Я знаю, что проблема будет решена, когда я определю g:jedi#usages_command в другую команду. Я хотел бы знать, как избежать наложения карт.

1 ответ

Решение

Я знаю, что проблема будет решена, когда я определю g:jedi#usages_command в другую команду. Я хотел бы знать, как избежать наложения карт.

определяющий g:jedi#usages_command это "способ избежать наложения карт".

Отображения плагинов всегда имеют приоритет перед вашими, потому что они определяют свои отображения после того, как вы определили свои.

Есть решения на уровне сценария, такие как использование <unique> или проверка того, что сопоставление уже существует, или просто не определение какого-либо сопоставления на уровне пользователя… но это ответственность разработчика, а не вас.

--- редактировать ---

Чтобы расширить комментарий Кристиана… всегда выигрывает последнее отображение, именно так оно и работает, и пользователь ничего не может сделать для защиты своих отображений.

Разработчики плагинов, тем не менее, имеют в своем распоряжении несколько механизмов для предотвращения того, чтобы их плагины перезаписывали пользовательские сопоставления и пользовательские настройки, поэтому не стоит ожидать, что они будут использовать эти механизмы для соблюдения ваших сопоставлений.

Другие вопросы по тегам