经过长时间的“训练”后,我终于切换到了Vim;但我在自动完成方面遇到了一些麻烦。我在打字时怎样才能有代码建议?
我通常开发PHP,Ruby,HTML,C和CSS。
答案 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是我尝试过的最快的。
这样的新内容答案 4 :(得分:5)
我最近发现了一个名为OniVim的项目,它是一个基于电子的NeoVim前端,它带有非常好的自动完成功能,可以开箱即用,并且因为它基本上只是一个如果GUI不能满足您的需求,您可以随意使用vim的全部功能。它仍然处于早期开发阶段,但它正在快速改进,并且围绕它有一个非常活跃的社区。我已经使用vim超过10年了,几个星期前开始给Oni试驾,虽然它确实有一些错误,但它并没有阻碍我的方式。我强烈推荐给那些仍在使用vim-fingers的新vim用户!
OniVim:https://www.onivim.io/
答案 5 :(得分:3)
我使用neocomplcache大约半年了。它是一个插件,可以在所有缓冲区中收集单词缓存,然后提供它们供您自动完成。
上一个链接中的项目页面上有一系列屏幕截图。 Neocomplcache还有很多配置选项,项目页面上也有基本的例子。
如果您需要更多深度,可以查看我vimrc中的相关部分 - 只需搜索neocomplcache这个词。
答案 6 :(得分:3)
如果您使用的是VIM版本8+,只需键入Ctrl + n
或Ctrl + p
。
答案 7 :(得分:2)
另一个选项是coc.nvim。
这真的非常快,而且补全非常出色,因为它使用了与VScode相同的自动补全功能。 它还具有起绒功能。因此,它表明您可能有错误。 它支持多种语言。
设置和配置可能会花费一些时间,但我认为这是Vim最好的自动完成引擎。
答案 8 :(得分:1)
答案 9 :(得分:1)
如果您只想从当前缓冲区的缓存中自动完成,supertab比neocomplete更容易安装,可以在Mac上预先安装vim,而不需要MacVim。
您可以在vim awesome查看其他替代方案。
答案 10 :(得分:0)
对于PHP,带有Padawan的Deoplete是在Neovim中拥有强大的PHP自动完成功能的绝佳解决方案。我尝试了很多东西,Padawan的工作就像一个魅力!
对于Vim,您可以使用Neocomplete代替Deoplete。
如果有人感兴趣,我写了一篇文章如何制作Vim PHP IDE。当然Padawan是其中的一部分。
答案 11 :(得分:0)
使用 vscode 和 vim 扩展。那么你将获得 vscode 的所有好处,以及 vim 键绑定。如果您在终端上是 24*7 或使用 32 linux,则必须使用上述方法启用它.....