在.vimrc中以静默方式覆盖冲突的映射

时间:2013-10-31 10:39:44

标签: vim

我在.vimrc中有一个映射与插件中的另一个映射冲突。

nnoremap <leader>p some fancy command here

当我运行VIM时,我收到警告:

E227: mapping already exists for ,p

如何静默覆盖有问题的映射?

修改

  • 它既不适用于nmap

1 个答案:

答案 0 :(得分:5)

这可能会压制警告:

:nnoremap <silent> <leader>p some fancy command here

但我怀疑警告实际上并非来自您的映射。我怀疑冲突映射是用<unique>定义的,并且在映射之后映射。如果已存在冲突地图,<unique>将发出E227。请参阅:h E227

挖掘第二个映射源(可能是插件)并查看是否是这种情况。大多数编写良好的插件为您提供了一种使用自己的映射或覆盖它们的方法,通过设置全局标志来完全禁用映射,或者将检测到您已将其他映射映射到特定函数(通过hasmapto

您可以通过以下方式查看哪个插件/脚本设置了映射:

:verbose map <leader>p

这应该有助于追踪来源。