首页 文章

nmap键映射不适用于Vim / Cscope

提问于
浏览
2

我在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

    尝试隔离问题 . 首先,在运行vim时,尝试类似的东西

    :nmap , :echo "hello"<CR>
    

    然后输入 . 假设有效,请尝试实际需要的组合键,而不是 . (当你写 [CTRL]+[\]+s 时,你正在同时使用CTRL和\键,对吧?)如果 that 有效,那么试试教程中的实际cscope命令 .

    接下来,尝试将简单的 nmap 命令添加到vimrc文件中 . 那样有用吗?

    您应该能够加载脚本

    :source path/to/cscope_maps.vim
    

    如果可行,但只是将文件放在插件目录中没有,请尝试

    :set runtimepath?
    

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

    :help load-plugins
    

    (步骤4在 :help startup 下)由于其他原因可能无法加载 .

  • 0

    我遇到了同样的问题,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("")
    
  • 1

    在使用VNC查看器的Mac上,Ctrl的组合对我不起作用 . 所以我只是替换了一些我没有使用的组合,比如f s等 .

  • 6

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

  • 0

    默认情况下,Vim只会在映射中的每次击键时等待1秒 . 这些组合键可能太短 .

    将以下行添加到vimrc后,“CTRL”工作 .

    set timeoutlen=4000 " in milliseconds
    

相关问题