安装vim-ruby-debugger插件“劫持”几个映射后。与<leader>n
或<leader>t
类似,我分别用于NERDTreeToggle和Command-T查找。
罪魁祸首在hardcoded mappings in this ruby-debugger找到。
我希望将这些重新映射为<leader>rdX
,即:以* r * uby- * d * ebugger为前缀。显然,我可以简单地破解插件并更改那里的映射。但这似乎有些过于苛刻(可能会在更新时中断)。
如何取消映射这些映射,那么vim会再次回归到我自己的映射中?所以我可以重新映射我的.vimrc中的命令(它应该在哪里,恕我直言)。
答案 0 :(得分:8)
首先,我同意ZyX的评论,即插件中的问题应该修复。请让插件作者提供自定义。
没有简单的取消映射方法,因为当覆盖映射时,Vim不记得原始映射。您必须记下原始映射(暂时禁用有问题的插件时为:map ...
,或者在Vim脚本中查找其定义),然后在违规后重新执行它们插件已加载(减去它可能具有的任何<unique>
标志,因为这些将导致重新执行错误)。这不能在.vimrc
中完成,它首先来源;我建议像~/.vim/after/plugin/zzzmappings.vim
这样的地方。
答案 1 :(得分:0)
我将所有映射都保存在BaseController
中。这似乎确保它们始终优先于插件映射。 (我使用了一堆插件,碰撞似乎得到了解决)(here's my nvim config)
FWIW,我还将文件类型特定的映射保留在同一文件夹中,但使用after/plugin/keys.vim
关键字将其写为autocmd FileType
命令。例如,以下是与bullets.vim的<buffer>
函数冲突的映射(如果没有,它会向子弹添加一个空复选框)
ToggleCheckbox