【发布时间】:2012-09-28 00:25:33
【问题描述】:
安装vim-ruby-debugger 后,该插件“劫持”了几个映射。就像<leader>n 或<leader>t 一样,我分别用于 NERDTreeToggle 和 Command-T 查找。
罪魁祸首在hardcoded mappings in this ruby-debugger。
我希望将这些重新映射为<leader>rdX,即:以 *r*uby-*d*ebugger 为前缀。显然,我可以简单地破解插件并更改那里的映射。但这似乎有点太老套了(并且可能会在更新时中断)。
如何取消映射这些映射,以便 vim 再次回退到我自己的映射?这样我就可以重新映射我的 .vimrc 中的命令(它应该在哪里,恕我直言)。
【问题讨论】:
-
使用 git,
git pull不会让您的更改在合并时消失。 -
更好,在 github 上 fork 这个存储库,添加自定义映射的可能性(通过将
noremap <leader>b …更改为execute 'nnoremap' get(g:, 'ruby_debugger_map_toggle_breakpoint', '<leader>b') '…'来更快地做到这一点),然后执行拉取请求。随着建议的更改映射将使用g:ruby_debugger_map_toggle_breakpoint变量进行自定义。 -
第二种解决方案比使用某种解决方法要好得多(例如将不应覆盖的映射放置到
~/.vim/after/plugin/mappings.vim,第一个建议的解决方案或使用某种我的map.maparg~/.vim/after/plugin/mappings.vim目录保存,然后map.map再次映射它们,但要映射到<leader>rd*,使用正常的noremap命令用于您的NerdTree 插件)。我相信您不是唯一需要自定义映射能力的人。 -
正如您的链接行所暗示的,如果您在
.vimrc文件中添加let g:ruby_debugger_no_maps=1,插件将不会设置映射。