在Vim中的自动补全

我的自动补全有问题。我如何在打字时得到代码建议?

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

448460 次浏览

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

在这里是一个将Python字典导入Vim的例子。

你可以使用像AutoComplPop这样的插件在你输入时自动完成代码。

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

我已经使用neocomplcache大约半年了。它是一个插件,在你所有的缓冲区中收集单词缓存,然后为你提供它们来自动补全。

在前面的链接中,项目页面上有一组截图。Neocomplcache还有大量的配置选项,在项目页面上也有基本的示例。

如果你需要更深入的内容,你可以在我的vimrc中查看相关部分-只需搜索单词neocomplcache。

你可以从内置的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完成。

这里是链接!PHP。

在编写一些PHP函数时按下Ctrl + x和Ctrl + o键。

感谢Oseems Solutions提供的教程

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

编辑:也有一些新的像https://github.com/maralla/completor.vim

如果你只想从当前缓冲区的缓存中自动补全,supertabneocomplete更容易安装,可以在Mac预安装的vim上工作,而不需要MacVim。

你可以在vim太棒了检查其他选项。

对于PHP来说,学徒Deoplete是在Neovim中实现健壮的PHP自动补全的很好的解决方案。我尝试了很多东西,学徒工作很有魅力!

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

我写过一篇文章,如果有人感兴趣,如何创建Vim PHP IDE。当然,徒弟也是其中之一。

我最近发现了一个名为OniVim的项目,这是一个基于电子的NeoVim前端,它为几种开箱即用的语言提供了非常好的自动完成功能,由于它基本上只是NeoVim的包装,如果GUI不能满足您的需求,您可以使用vim的全部功能。它仍处于早期开发阶段,但它正在改进,并且有一个真正活跃的社区围绕着它。我已经使用vim超过10年了,几周前开始给Oni试驾,虽然它确实有一些bug,但它并没有妨碍我。我强烈推荐它给还在使用vim手指的vim新用户!

enter image description here

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

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

另一个选项是coc.nvim

它真的很快,补全很棒,因为它使用了与VScode相同的自动补全智能感知。 它还具有检测功能。这说明你可能有bug。 它支持多种语言

它可能需要一些设置和配置,但我认为它是最好的自动补全引擎的vim。