1

我正在使用jedi-vim. 它将键映射定义<Leader>n为一些命令,而我也在 .vimrc 文件中定义它,如下所示。

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

但是当我输入<Leader>npython文件时,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另一个命令时问题会得到解决。我想知道避免重叠映射的方法。

4

1 回答 1

4

我知道当我定义g:jedi#usages_command另一个命令时问题会得到解决。我想知道避免重叠映射的方法。

定义g:jedi#usages_command “避免重叠映射的方法”。

插件映射总是优先于你的,因为它们在你定义你的映射之后定义它们的映射。

在脚本级别有一些解决方案,例如使用<unique>,或检查映射是否已经存在,或者根本不定义任何用户级映射……但这是开发人员的责任,而不是你的责任。

- - 编辑 - -

为了扩展 Christian 的评论……最后一个映射总是获胜,这就是它的工作原理,用户无法做任何事情来保护他的映射。

但是,插件开发人员可以使用一些机制来防止他们的插件覆盖用户映射和用户设置,因此期望他们使用这些机制来尊重您的映射并不是不合理的。

于 2015-11-17T08:24:42.180 回答