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