如何将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