配置
问题
该插件使用“CTRL-spacebar”或<CTRL-@>
映射多个cscope查找函数以水平或垂直分割打开,因为这是VIM根据插件文档识别它的方式。这是插件的片段:
" Using 'CTRL-spacebar' (intepreted as CTRL-@ by vim) then a search type
" makes the vim window split horizontally, with search result displayed in
" the new window.
"
" (Note: earlier versions of vim may not have the :scs command, but it
" can be simulated roughly via:
" nmap <C-@>s <C-W><C-S> :cs find s <C-R>=expand("<cword>")<CR><CR>
nmap <C-@>s :scs find s <C-R>=expand("<cword>")<CR><CR>
nmap <C-@>g :scs find g <C-R>=expand("<cword>")<CR><CR>
然而,'CTRL-spacebar'不起作用。当我查看已映射的内容<C-@>
实际上被翻译为<nul>
。例如,如果我使用命令:map
,则这是cscope插件映射键的结果。
n <nul>d :scs find d <C-R>=expand("<cword>")<CR><CR><Tab>
n <nul>i :scs find i <C-R>=expand("<cfile>")<CR><CR><Tab>
n <nul>f :scs find f <C-R>=expand("<cfile>")<CR><CR><Tab>
n <nul>e :scs find e <C-R>=expand("<cword>")<CR><CR><Tab>
我能找到'CTRL-spacebar'/ <CTRL-@>
(:help index
)的唯一内容是
tag char action in Insert mode ~
-----------------------------------------------------------------------
i_CTRL-@ CTRL-@ insert previously inserted text and stop
insert
但这不是我观察到的行为。
当我尝试在插入模式下使用'CTRL-spacebar'时,所有发生的事情都是在光标处插入一个空格。当我在正常模式下使用它时,它似乎将光标移动到下一个单词的开头,如果它是空白则移动到下一行。
那么,如何在Windows上的VIM中映射“CTRL-spacebar”?
答案 0 :(得分:4)
在Windows GVIM中,使用简单的<C-Space>
作为映射的左侧。 <C-@>
或等效的<Nul>
是(Linux)终端的变通方法,它通常提供更少的可映射密钥。大概是针对那些指示。