如何将ctrl x ctrl o映射到terminalvim中的ctrl空间?
在网上search一下后,似乎我无法将Ctrl 空间映射到任何东西/很多。 有没有办法做到今天,我发现通常是2岁。
我遇到了同样的问题,简短的回答是,你可以,而不是在gui版本。 添加这个你.vimrc
就足够了:
inoremap <C-Space> <Cx><Co> inoremap <C-@> <C-Space>
问题似乎是Terminal.app不能正确解释<C-Space>
,而Vim理解为<C-@>
这是一个内置的映射( :help CTRL-@
)。
也许你可以在你的.vimrc中使用类似下面的内容:
if !has("gui_running") inoremap <C-@> <Cx><Co> endif
这似乎工作在这里,但我不喜欢重写这样的内置插件的想法。
相反,你应该尝试使用<Leader>
( :help leader
),它给你定义自己的自定义映射和(取决于你select的mapleader
)不会干扰操作系统/应用程序特定的快捷方式/限制,因此更多便携。
有了这个在我的.vimrc中:
let mapleader="," inoremap <leader>, <Cx><Co>
我刚刚点击完成方法名称。
nitpicker打破了pablox解决scheme。 解决scheme的关键在于重新映射。 所以,当你禁用重新映射,它不能工作。
如果你真的想投入一个noremap
,这是它的样子:
inoremap <expr><C-space> neocomplete#start_manual_complete() imap <C-@> <C-Space>
什么不行 : inoremap <C-@> <C-Space>
因为<C-Space>
部分不会被重新映射。
- 你有没有尝试过
:inoremap <c-space> <cx><co>
? - 键入插入模式时, Ctrl + Ctrl + O是否会执行任何操作? 是
omnifunc
设置?
将以下代码添加到~/.vimrc
:
" Ctrl-Space for completions. Heck Yeah! inoremap <expr> <C-Space> pumvisible() \|\| &omnifunc == '' ? \ "\<lt>Cn>" : \ "\<lt>Cx>\<lt>Co><cr>=pumvisible() ?" . \ "\"\\<lt>cn>\\<lt>cp>\\<lt>cn>\" :" . \ "\" \\<lt>bs>\\<lt>Cn>\"\<CR>" imap <C-@> <C-Space>
来源: https : //coderwall.com/p/cl6cpq
为了适应Windows和Linux,我将其应用于~/.vimrc
if has("unix") inoremap <C-@> <cx><co> elseif has("win32") inoremap <C-Space> <cx><co> endif