Vim YouCompleteMe配置

时间:2013-04-28 14:46:38

标签: c++ vim autocomplete

我刚刚通过vundle为Vim安装了YouCompleteMe。它有效,但它只显示当前文件中包含的单词。我想用它来开发c ++程序,如何配置它来显示/ usr / include中的c ++头文件的自动完成?非常感谢。

5 个答案:

答案 0 :(得分:20)

您需要导航到~/.vim/bundles/YouCompleteMe并使用--clang-completer运行安装脚本,./install.sh --clang-completer也是如此。完成后你应该支持C语言。

您可能还需要将let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/cpp/ycm/.ycm_extra_conf.py'放入~/.vimrc

答案 1 :(得分:7)

我安装了病原体。我用./install.sh --clang-complete尝试了上面的说明。在此之后,它没有用,我确实不得不添加路径。但这与其他答复不同,即

let g:ycm_global_ycm_extra_conf = '.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py'

所以有一个额外的" third_party / ycmd"在路上。

答案 2 :(得分:3)

虽然这里的建议可能在一开始就有用,但我不确定它是否正确。根据YCM开发人员的说法,无论何时启动项目,都需要一个新的 .ycm_extra_conf.py 文件

来自https://valloric.github.io/YouCompleteMe/#ubuntu-linux-x64-super-quick-installation

  

YCM在打开的文件的目录中或在层次结构中的任何目录中查找.ycm_extra_conf.py文件(递归地);找到文件时,它作为Python模块加载(仅一次!)。 YCM在该模块中调用FlagsForFile方法,该方法应为其提供编译当前文件所需的信息。您还可以提供全局.ycm_extra_conf.py文件的路径,该文件将用作后备。为了防止从你没有编写的文件中执行恶意代码,如果加载是安全的,YCM会根据.ycm_extra_conf.py问你一次。这可以被禁用,您可以白/黑名单文件。有关详细信息,请参阅“选项”部分。

虽然您可能只需要修改vanilla .ycm_extra_conf.py中的编译标志,但我觉得建议为您启动的每个项目创建一个新文件。

答案 3 :(得分:1)

这里的人们所说的一切都是正确的。我只想补充一点,自2017年起,“ install.sh”脚本已被弃用。现在,您必须使用install.py脚本,而不要输入

./install.py --clang-completer

此外,在您的.vimrc文件中,您需要在地址前面添加“〜/”,而不是“ .vim / bundle / blahblahblah”。

let g:ycm_global_ycm_extra_conf = "~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py"

到您的.vimrc文件,为它提供主目录的绝对路径,以便Vim可以找到“ .ycm_extra_conf.py”文件。否则,您可能会遇到一些有趣的行为。

答案 4 :(得分:0)

我只是想添加一下,如果您不想手动定义一个配置文件,那么这个精巧的小仓库会自动生成它。 https://github.com/rdnetto/YCM-Generator