如何重新定义插件键映射?


21

我安装了一个不提供禁用其定义的键映射的机制的插件。我想<leader>cc为我自己的目的重新定义插件定义的映射()之一,我尝试将以下行放入我的.vimrc

noremap <leader>cc echo "my purpose"

但这不起作用,<leader>cc仍在执行plugin命令。

如何定义映射,使其覆盖插件定义的映射?


一个(公认的不好)选项是直接进入并编辑源代码并直接删除有问题的映射
JonnyRaa

Answers:


20

插件货源后,vimrc这样没有办法在覆盖插件映射你vimrc如果插件没有提供一种方式来做到这一点。

将自定义映射放入~/.vim/after/plugin/mystuff.vim(文件名无关紧要)应该允许您覆盖插件映射。


1
这样做对我不起作用。我放在map <C-l> something那里,它仍然被Pydocstring覆盖。
oarfish

是否有特定于文件类型(例如ftplugin)的方法?
史蒂文·卢

另外,同意,这实际上甚至行不通。
史蒂文·卢

19

如其他答案中所述,插件是在完成vimrc之后获得的。

如果您想将替代内容保留在vimrc中而不是使用after插件,则可以在vimrc文件中的任何位置使用此“技巧”:

autocmd VimEnter * noremap <leader>cc echo "my purpose"

来自:help VimEnter

VimEnter:完成所有启动工作之后,包括加载.vimrc文件,执行“ -c cmd”参数,创建所有窗口并在其中加载缓冲区。

因此,在Vim准备就绪后,您放入VimEnter auto命令中的所有内容都会运行。使用在VimEnter这种方式可以让你保持你的其他设置你所有的映射,你是用来让他们:vimrc

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.