jedi vim映射vimrc和插件之间的冲突



I';m使用CCD_ 1。它将键映射<Leader>n定义为一些命令,而我也在.virc文件中定义了它,如下所示。

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

但当我在python文件中键入<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定义为另一个命令时,问题会得到解决。我想知道避免重叠映射的方法。

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

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

插件映射总是优先于您的映射,因为它们在您定义了自己的映射后定义了它们的映射。

脚本级别有一些解决方案,比如使用jedi-vim0,或者检查映射是否已经存在,或者只是不定义任何用户级别的映射……但这是开发人员的责任,而不是您的责任。

---编辑---

扩展Christian的评论…最后一个映射总是获胜,这就是它的工作方式,用户无法采取任何措施来保护他的映射。

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

最新更新