c++ - YouCompleteMe 无法自动完成

标签 c++ linux git vim autocomplete

我想开发C/C++程序,所以我通过Vundle安装了YouCompleteMe for Vim,但不能正常运行,实际上它只显示当前文件中包含的单词。希望得到帮助! 我的步骤如下:

  • 下载 Vundle.vim
    git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim
  • #修改.vimrc

    set nocompatible
    filetype off
    set rtp+=~/.vim/bundle/Vundle.vim
    call vundle#begin()
    Plugin 'gmarik/Vundle.vim'
    Plugin 'Valloric/YouCompleteMe'
    call vundle#end()
    filetype plugin indent on

  • 启动 vim 并运行:
`:PluginInstall`
  • 下载cmake和clang+llvm

    http://llvm.org/releases/download.html#3.6.0
    http://www.cmake.org/download/

  • 准备 clang 和 cmake

    Extract "clang+llvm-3.6.0-x86_64-linux-gnu-ubuntu-14.04.tar.xz" into ycm_temp
    Rename "clang+llvm-3.6.0-x86_64-linux-gnu" to "llvm_root_dir"
    Extract cmake-3.2.2-Linux-x86_64.tar.gz and Link bin/cmake to /usr/bin/cmake

  • 制作

    cd ~
    mkdir ycm_build
    cd ycm_build
    cmake -G "Unix Makefiles" -DPATH_TO_LLVM_ROOT=~/ycm_temp/llvm_root_dir . ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp
    make ycm_support_libs

  • 修改.vimrc

    let g:ycm_seed_identifiers_with_syntax=1
    let g:ycm_global_ycm_extra_conf = '/home/li/.vim/bundle/YouCompleteMe/.ycm_extra_conf.py'
    let g:ycm_confirm_extra_conf=0
    let g:ycm_collect_identifiers_from_tag_files = 1
    set completeopt=longest,menu

现在,没有错误或警告抛出,但它不能自动完成 C/C++ 头文件!

  • 备注
OS:ubuntu 14.04
vim:7.4
Python:2.7.6

最佳答案

使用快捷键 Ctrl-X + Ctrl-O 检查 omni 补全(功能)。

会触发omni功能,

和/或从以下链接下载 .ycm_extra_conf.py >> https://github.com/rasendubi/dotfiles/blob/d534c5fb6bf39f0d9c8668b564ab68b6e3a3eb78/.vim/.ycm_extra_conf.py

并将其放在.vim 中,然后将以下内容添加到.vimrc

let g:ycm_global_ycm_extra_conf = '~/.vim/.ycm_extra_conf.py'

关于c++ - YouCompleteMe 无法自动完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30066100/

相关文章:

c++ - std::transform 和 std::plus 如何协同工作?

php - 以一定的时间间隔(包括秒)调度任务

c - 读取失败并显示 EFAULT

linux - 树莓派 IFTTT DO 按钮

c++ - 是否有任何 C++ 编译器能够优化 lround(pow(sqrt(i), 2)) 现在或在不久的将来用 i 替换它?

c++ - PrintTo 用于 Google Test 中的指针

c++ - 在 C++ 中扩展数组

ios - 在github上推送时Xcode不添加框架

如果起源/开发不同步,git flow 功能完成不会推送

Git存储错误 "Cannot save the current status"