2015-11-17 2 views
0

I ' m используя jedi-vim. Он определяет ключевую карту <Leader>n как некоторые команды, в то время как я также определяю ее в файле .vimrc, как показано ниже.vim map confliction между vimrc и плагином

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

Но когда я напечатал <Leader>n в питона файле, 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 другой команде. Я хотел бы знать, как избежать дублирования отображения.

ответ

3

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

Определение g:jedi#usages_commandявляется "способ избежать дублирования отображения".

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

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

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

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

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

+1

Также можно просто сказать 'let g: jedi # usages_command =" "' просто избавиться от этой команды вообще. –

+0

На самом деле, я бы сказал, если плагин перезаписывает мои собственные сопоставления, это ошибка, и ее следует сообщать. –