在 haskell-vim-now 中更改自动完成的键绑定

Change key binding for autocomplete in haskell-vim-now

我已经在 Ubuntu 14.04 LTS 和 Xubuntu 14.04 LTS 中安装了 Vim 插件 haskell-vim-now

在 Ubuntu 中使用插件后,我可以在 Ctrl-space 中使用自动完成功能。但是,当我在 Xubuntu 中安装它时, Ctrl-space 键不起作用。我使自动完成工作的唯一方法是使用键 Ctrl-@.

我查看了 haskell-vim-now 生成的 .vimrc 文件,问题似乎出在以下行中:

inoremap <Nul> <c-r>=SuperTabAlternateCompletion("\<lt>c-x>\<lt>c-o>")<cr>

在我看来,<Nul> 在 Ubuntu 中绑定到 Ctrl-space,在 Xubuntu 中绑定到 Ctrl-@

如何更改配置,以便 <Nul> 绑定到 Xubuntu 中的 Ctrl-space(以便可以使用 Ctrl-space 完成自动完成)。

提前感谢您的回答。

您只需将 ~/.vimrc 中的那一行编辑为:

inoremap <c-space> <c-r>=SuperTabAlternateCompletion("\<lt>c-x>\<lt>c-o>")<cr>

映射采用以下基本形式:{mode}map {key} {lhs}。有关映射的更多信息,请参阅 :h :map 以及 :h key-notation

Haskell-vim-现在不是一个插件,它更像是一个 vim 配置分发版。现在从我所看到的 Haskell-vim-now 似乎尝试尽可能好地玩 vim 发行版,但它仍然安装许多 vim 插件并制作许多定制。对较新的 vim 用户的配置进行如此大量和快速的更改通常会引起混淆,因为他们都在使用其他人的自定义并且他们没有学习所有中间 Vim 步骤。因此,我告诫您不要进行此类分发,并在学习过程中慢慢建立自己的 vimrc

inoremap <c-space> <c-r>=SuperTabAlternateCompletion("\<lt>c-x>\<lt>c-o>")<cr> 中的 <c-space> 对我不起作用的原因是因为与现有的 <c-space> 快捷键有冲突。

一旦我解决了冲突,Vim 自动完成快捷方式就起作用了。