首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何取消“nmap<silent><buffer>”映射

如何取消“nmap<silent><buffer>”映射
EN

Stack Overflow用户
提问于 2018-06-18 16:27:40
回答 1查看 559关注 0票数 1

这是一个关于如何解除键绑定映射的问题。一般来说,取消映射键绑定并不难,但在这种情况下我遇到了困难。我尝试在:help中找到相关信息,但是键绑定有点复杂--我仍然不理解它--而且我无法从.vimrc这样的配置文件中解映射它。

编辑OCaml源代码的“`merlin”包为vim提供了一组配置文件。有一个我不想要的定义:

代码语言:javascript
复制
nmap <silent><buffer> gd  :MerlinLocate<return>

我不想在自动加载的merlin.vim文件中注释掉它,因为当我设置一个新的OCaml配置时,这个文件将被反复自动生成。相反,我只是想通过在我自己的配置文件中取消映射gd来覆盖这个定义。

如果我执行

代码语言:javascript
复制
nunmap <silent><buffer> gd

在编辑一个:文件时,手动在OCaml提示符下操作,就像我想要的那样,取消映射gd。(我不理解<silent><buffer>的意思,但似乎有必要取消键绑定。)

但是,如果我在.vimrc中放置相同的行(或者在我使用-u运行的文件中),gd就不会被取消映射。(将nunmap更改为unmap可以做同样的事情-在:提示符下工作,而不是在启动文件中。)

如何解压gd

(执行nunmap命令时没有映射这些键是否有问题,因为此时当前缓冲区中没有OCaml源文件?不过,我肯定有办法解决这个问题。)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-18 16:46:19

<buffer> in nmap <silent><buffer> gd :MerlinLocate<return>意味着此映射是缓冲区本地的。

因为它是为每个ocaml缓冲区定义的,所以每次用值ocaml触发FileType事件时,您将很难全局覆盖它。

但是,应该使用的是在您自己的ocaml ftplugin中覆盖映射:

代码语言:javascript
复制
" in after/ftplugin/ocaml.vim
nunmap <buffer> gd

但是这一切都是没有意义的,因为映射可能会被禁用通过一个简单的全局变量

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50913806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档