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
другой команде. Я хотел бы знать, как избежать дублирования отображения.
Я знаю, проблема будет исправлена, когда я определяю
g:jedi#usages_command
другой команде. Я хотел бы знать, как избежать дублирования отображения.
Определение g:jedi#usages_command
- это "способ избежать дублирования отображения".
Сопоставления плагинов всегда имеют приоритет над вашими, потому что они определяют их отображения после того, как вы определили свои.
На уровне сценария есть решения, например, использование <unique>
, или проверка того, что сопоставление уже существует, или просто не определение какого-либо сопоставления на уровне пользователя... но это ответственность разработчика, а не вашего.
--- редактировать ---
Чтобы расширить христианский комментарий... последнее отображение всегда выигрывает, что он работает, и ничто не может быть сделано пользователем для защиты его сопоставлений.
Однако разработчики плагинов располагают несколькими механизмами для предотвращения их плагинов для перезаписи пользовательских сопоставлений и пользовательских настроек, поэтому небезосновательно ожидать, что они будут использовать эти механизмы для соответствия вашим сопоставлениям.