pli*_*ter 50 mapping vim omnicomplete
在网上搜索了一下后,似乎我无法映射CtrlSpace到任何东西/很多.今天有办法做到这一点,我发现通常是2岁.
Pab*_* C. 47
我遇到了同样的问题,简短的回答是肯定的,你不仅可以在gui版本中使用.在你身上添加这个就.vimrc
足够了:
inoremap <C-Space> <C-x><C-o>
inoremap <C-@> <C-Space>
Run Code Online (Sandbox Code Playgroud)
rom*_*inl 25
问题似乎是Terminal.app没有<C-Space>
正确解释,Vim将其理解为<C-@>
内置的mapping(:help CTRL-@
).
也许你可以使用.vimrc中的以下内容:
if !has("gui_running")
inoremap <C-@> <C-x><C-o>
endif
Run Code Online (Sandbox Code Playgroud)
这似乎工作,在这里,但我不喜欢像这样重写内置插件的想法.
相反,您应该尝试使用<Leader>
(:help leader
),它为您提供了定义自己的自定义映射的巨大可能性,并且(取决于mapleader
您的选择)不会干扰OS/app特定的快捷方式/限制,因此更具可移植性.
在我的.vimrc中有这个:
let mapleader=","
inoremap <leader>, <C-x><C-o>
Run Code Online (Sandbox Code Playgroud)
我只是点击,,
完成方法名称.
nitpicker破坏了pablox溶液.解决方案的关键在于重新映射.因此,当您禁用重新映射时,它无法正常工作.
如果你真的想要投入noremap
,这就是它的样子:
inoremap <expr><C-space> neocomplete#start_manual_complete()
imap <C-@> <C-Space>
Run Code Online (Sandbox Code Playgroud)
什么会不工作:inoremap <C-@> <C-Space>
"导致<C-Space>
部分不会被重新映射本身.