nmap键映射不适用于Vim / Cscope

时间:2013-12-29 06:09:40

标签: vim map cscope

我在ubuntu中使用带有cscope的vim(7.3)。 :cs find命令工作正常,但我想使用一些键绑定,所以我下载cscope_maps.vim并根据教程here安装它。但是,无论我把vim文件放在哪个地方,文件中定义的关键映射都不起作用!例如,我得到了一个映射:

nmap <C-\>s :cs find s <C-R>=expand("<cword>")<CR><CR>

当我将光标移动到c符号并按下[CTRL] + [\] + s时,没有任何反复发生!

有谁知道原因以及如何解决?

感谢。

5 个答案:

答案 0 :(得分:6)

尝试隔离问题。首先,在运行vim时,尝试类似

的内容
:nmap , :echo "hello"<CR>

然后输入。假设有效,请尝试实际需要的组合键,而不是。 (当您编写[CTRL]+[\]+s时,您同时使用CTRL和 \ 键,对吧?)如果 有效,请尝试实际的cscope命令来自教程。

接下来,尝试在vimrc文件中添加一个简单的nmap命令。这有用吗?

您应该可以使用

加载脚本
:source path/to/cscope_maps.vim

如果可行,但只是删除插件目录中的文件,请尝试

:set runtimepath?

查看正在搜索插件的目录,并阅读

:help load-plugins

:help startup下的第4步)因其他原因可能无法加载。

答案 1 :(得分:1)

我遇到了同样的问题,cscope_maps.vim中的修改后帮助我解决了这个问题。

默认情况下,Cscope_maps.vim文件提供以下映射

nmap <C-\>s :cs find s =expand("")
nmap <C-\>g :cs find g =expand("")
nmap <C-\>c :cs find c =expand("")
nmap <C-\>t :cs find t =expand("")
nmap <C-\>e :cs find e =expand("")
nmap <C-\>f :cs find f =expand("")
nmap <C-\>i :cs find i ^=expand("")$
nmap <C-\>d :cs find d =expand("")

因为在ubuntu 14.04中对我不起作用所以我将<C-\>替换为z

nmap zs :cs find s =expand("")
nmap zg :cs find g =expand("")
nmap zc :cs find c =expand("")
nmap zt :cs find t =expand("")
nmap ze :cs find e =expand("")
nmap zf :cs find f =expand("")
nmap zi :cs find i ^=expand("")$
nmap zd :cs find d =expand("")

答案 2 :(得分:0)

在使用VNC查看器的Mac上, Ctrl + s 组合对我不起作用。所以我只是替换了一些我没有用过其他任何东西的组合,比如 f + s 等。

答案 3 :(得分:0)

同样的事发生在我身上。我认为cscope_maps.vim存在问题,因为我保存了html页面而不是复制页面内容。这导致了几个明显的错误,甚至在纠正了这些初始错误后,它根据html脚本更改了文件中提到的键映射。因此,我建议您尝试从文件中的上述链接复制cscope_maps.vim的内容,而不是下载网页。

答案 4 :(得分:0)

默认情况下,Vim对于映射中的每个按键仅等待1秒。 这些组合键可能太短了。

在vimrc中添加以下行后,“ CTRL + \”起作用。

set timeoutlen=4000 " in milliseconds