Vim中的自动完成

时间:2011-03-02 15:25:32

标签: vim autocomplete macvim

经过长时间的“训练”后,我终于切换到了Vim;但我在自动完成方面遇到了一些麻烦。我在打字时怎样才能有代码建议?

我通常开发PHP,Ruby,HTML,C和CSS。

12 个答案:

答案 0 :(得分:373)

使用 Ctrl - N 获取插入模式下的单词建议列表。输入:help i_CTRL-N以查看Vim有关此功能的文档。

Here是将Python字典导入Vim的示例。

答案 1 :(得分:128)

您可以使用AutoComplPop之类的插件在您输入时自动完成代码。

2015年编辑:我个人现在使用YouCompleteMe

答案 2 :(得分:9)

您可以从内置omnifunc设置开始。

刚刚提出:

filetype plugin on
au FileType php setl ofu=phpcomplete#CompletePHP
au FileType ruby,eruby setl ofu=rubycomplete#Complete
au FileType html,xhtml setl ofu=htmlcomplete#CompleteTags
au FileType c setl ofu=ccomplete#CompleteCpp
au FileType css setl ofu=csscomplete#CompleteCSS

位于.vimrc的底部,然后在插入模式下输入<Ctrl-X><Ctrl-O>

我总是依赖这个CSS完成。

答案 3 :(得分:6)

还有https://github.com/Valloric/YouCompleteMe,它包括像Jedi这样的东西,也有模糊匹配。到目前为止,我发现YCM是我尝试过的最快的。

编辑:还有一些像https://github.com/maralla/completor.vim

这样的新内容

答案 4 :(得分:5)

我最近发现了一个名为OniVim的项目,它是一个基于电子的NeoVim前端,它带有非常好的自动完成功能,可以开箱即用,并且因为它基本上只是一个如果GUI不能满足您的需求,您可以随意使用vim的全部功能。它仍然处于早期开发阶段,但它正在快速改进,并且围绕它有一个非常活跃的社区。我已经使用vim超过10年了,几个星期前开始给Oni试驾,虽然它确实有一些错误,但它并没有阻碍我的方式。我强烈推荐给那些仍在使用vim-fingers的新vim用户!

enter image description here

OniVim:https://www.onivim.io/

答案 5 :(得分:3)

我使用neocomplcache大约半年了。它是一个插件,可以在所有缓冲区中收集单词缓存,然后提供它们供您自动完成。

上一个链接中的项目页面上有一系列屏幕截图。 Neocomplcache还有很多配置选项,项目页面上也有基本的例子。

如果您需要更多深度,可以查看我vimrc中的相关部分 - 只需搜索neocomplcache这个词。

答案 6 :(得分:3)

如果您使用的是VIM版本8+,只需键入Ctrl + nCtrl + p

答案 7 :(得分:2)

另一个选项是coc.nvim

这真的非常快,而且补全非常出色,因为它使用了与VScode相同的自动补全功能。 它还具有起绒功能。因此,它表明您可能有错误。 它支持多种语言。

设置和配置可能会花费一些时间,但我认为这是Vim最好的自动完成引擎。

答案 8 :(得分:1)

这是link!对于PHP。

在编写一些PHP函数时按Ctrl + x,然后按Ctrl + o键。

感谢Oseems Solutions的教程

答案 9 :(得分:1)

如果您只想从当前缓冲区的缓存中自动完成,supertabneocomplete更容易安装,可以在Mac上预先安装vim,而不需要MacVim。

您可以在vim awesome查看其他替代方案。

答案 10 :(得分:0)

对于PHP,带有PadawanDeoplete是在Neovim中拥有强大的PHP自动完成功能的绝佳解决方案。我尝试了很多东西,Padawan的工作就像一个魅力!

对于Vim,您可以使用Neocomplete代替Deoplete。

如果有人感兴趣,我写了一篇文章如何制作Vim PHP IDE。当然Padawan是其中的一部分。

答案 11 :(得分:0)

使用 vscode 和 vim 扩展。那么你将获得 vscode 的所有好处,以及 vim 键绑定。如果您在终端上是 24*7 或使用 32 linux,则必须使用上述方法启用它.....