Vim中的自动完成

die*_*stn 235 vim autocomplete macvim

经过长时间的"训练",我终于转向了Vim; 但我在自动完成方面遇到了一些麻烦.我在打字时怎么能有代码建议呢?

我经常开发PHP,Ruby,HTML,C和CSS.

Orb*_*bit 406

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

以下是将Python字典导入Vim的示例.

  • 谢谢这很好,但是如何在不按<ctrl + N>的情况下自动显示此列表? (14认同)
  • 这就是michaelmichael用他提到的插件告诉你的.此外,你可能会看看SuperTab. (5认同)
  • 对于CSS支持,通​​过在.vimrc中添加'set iskeyword + = - '来添加内置自动完成功能的破折号 (4认同)
  • @ Hi-Angel'auto'部分是它自动确定完成单词的选项,并在选择选项时自动竞争单词. (4认同)
  • 这是最全面和最原生的方式:-) (3认同)

mic*_*ael 136

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

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

  • 强烈建议这样做.不需要输入CX CO,CP或CN. (9认同)

Âng*_*tto 12

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

  • 有没有办法让我在不按 ctrl+p 的情况下弹出它们?即我希望它在我打字时不断建议我 (2认同)

ern*_*nix 10

您可以从内置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
Run Code Online (Sandbox Code Playgroud)

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

我总是依赖这个CSS完成.

  • @ernix 来自您的链接:*Vim 中的缓冲区是...一个文件的打开实例...* 我了解缓冲区、窗口和选项卡;但我不知道在同一个缓冲区中打开另一个文件。在我看来,当您打开一个文件时,它总是会在新缓冲区中打开并将该缓冲区添加到缓冲区列表中。我知道还有其他使用缓冲区的方法,例如快速修复列表,但我不知道 * 更改 * 缓冲区中的文件。`:h buffers` 说: *缓冲区是加载到内存中进行编辑的文件。* 也就是说,我只认真使用 Vim 3 个月。我当然愿意接受纠正。 (3认同)

ak1*_*k17 7

另一个选择是coc.nvim

它的速度非常快,而且补全效果也很棒,因为它使用与 VScode 相同的智能感知自动补全功能。它还具有 linting 功能。所以它表明你可能有一个错误。它支持多种语言。

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


Nis*_*ant 6

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

编辑:还有一些新的,如https://github.com/maralla/completor.vim


Par*_*ult 5

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

在此输入图像描述

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

  • 对我来说,vim的整个观点是使用终端...如果我想使用电子应用程序,我只会使用带有vim扩展名的vscode. (22认同)
  • @MohamedBenkedadra但这真的会让您获得Vim的全部功能吗?一方面,我恰好是其搜索和替换模式系统的忠实拥护者,如果vim仿真插件支持该功能,我会感到惊喜。 (2认同)