首先,您要保证您的vim版本号要高于7.3.584,毕蔽您可以通过在终端输入:
vim --version
来查看您的vim的版本号。如果没有vim,您需要自己安装。
第二步,安装cmake
sudo apt-get install build-essential cmake
第三步,安装 llvm 和 clang
到 www.llvm.org 下载相应版本的llvm和clang,因为我用的是ubuntu 14.04 64bit的系统所以我直接下载的pre-build binary版本的而不需要下载源码再自己重新编译了。省去了不少麻烦。
咐戚下载完成后,直接将下载后的压缩文件解压,并进入其目录
tar zxvf clang+llvm-3.7.0-amd64-Ubuntu-14.04..tar.gz
cd clang+llvm-3.7.0-amd64-Ubuntu-14.04.
其中 *.tar.gz就是您所下载的压缩文件。
运行命令:
sudo cp -R * /usr/
将目录里的所有文件拷贝到相应的系统目录下,然后再配置一下软链接:
sudo ln -sf /usr/bin/clang++ /etc/alternatives/c++
其中 “-sf”中 “s”代表了软链接,“f”即为force的意思。
运行:clang --version 如果您看到了它的版本号,就说明 llvm 和 clang配置好了。
第四步:安装Vundle,安装过程请参考 https://github.com/VundleVim/Vundle.vim#about ;P.S. :如果您是第一次安装vim,可能需要自己创建vim的配置文件,它是在 “~/ ” 目录下的的一个隐藏文件 .vim 前面的“小点”就说明这是一个隐藏的目录, 用 ls -a才能查看,如果没有,请创建该目录。即:mkdir ~/.vim
配置好Vundle , 请打开主目录下的.vimrc文件,这个文件是按照之前安装vundle时的步骤配置好的,请在call vundle#begin() 和 call vundle#end() 在之间添加 Plugin ‘Valloric/YouCompleteMe‘, 另外,把begin() 和 end()之间除了Plugin ‘VundleVim/Vundle.vim‘ 和 Plugin ‘Valloric/YouCompleteMe‘之外的其他PlugIn 都注释掉把,感觉没什么卵用。
第五步:利用Vundle安装插件
非常简单,在终端中打开vim, 输入" :PluginInstall ", 等待Vundle安装完毕。这可能需要花费一段时间。当vim的底栏显示:Done!(注意不是Done with error !!!) 就表示安装成功。
第衡数陵六步:编译YouCompleteMe, 为了不保证出错,我用的是完全安装的方法。
cd ~
mkdir ycm_build
cd ycm_build
因为我要支持C/CPP的语义支持,我选择:
cmake -G "Unix Makefiles" -DUSE_SYSTEM_LIBCLANG=ON . ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp
这里,我选择使用系统的libclang,因为我们也从官网下载了LLVM+Clang(该目录下有 bin, lib, include 等文件夹),我们也可以执行:cmake -G "Unix Makefiles" -DPATH_TO_LLVM_ROOT=~/ycm_temp/llvm_root_dir . ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp 其中“~/ycm_temp/llvm_root_dir”就是我们解压过的文件的根目录
第七步:生成
make ycm_support_libs
到此为止,基本的配置工作就完成了,但是还有一点瑕疵:#include <iostream>, #include <stdio>vector, 什么的都不能补全,这是因为这些头文件的路径没有被找到,下面的工作就是要让YouCompleteMe找到这些头文件,而且,以后有什么库文件,比如OpenCV,OPenGL什么的,都可以按照这个方法添加。
打开 ~/下的.vimrc文件,确保查看是否有这样一条配置:
let g:ycm_global_ycm_extra_conf = ‘~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py‘
如果没有,请修改.ycm_extra_conf.py的路径是正确的。
打开 ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py
vim ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py
您可以在flags[ * ]数组的后面添加你想要的路径,例如: stdio.h等C语言的头文件包含在/usr/include中,那么您需要添加这样一条
‘-isystem‘,
‘/usr/include’,
注意,不要忘记后面的“,”。
普通模式下,将光标停在那斗轿个宏上,按
[d就会自动去头文件喊笑里找这个带这个关键字的宏定义,并显示在最下边。
如果头文件的包含逻辑很复杂,这可能会比较慢。用
:checkpath!可以看头文件的包含逻辑。这也是 vim 会尝试搜索的位置。
如果很多文件都标明“NOT FOUND”,或者“无法找到”之类的的字眼,可能需要设郑销含置 'path',告诉 vim 系统的头文件在哪里。如果不会设置,可以再追问。
另外,有些时候宏的值是在编译的时候经过预处理算出来的。vim 由于只能静态的看代码,因此无法确定宏的最终取值(即宏的值和编译环境有关)。在这种时候,用:
[D会把能找到的都列出来,每个前面有个编号。比如对第4个结果比较关心,可以用
4<c-w>d(三个键,普通模式下直接按)跳到那个位置看上下文。
没有其它辅助工具的时候 vim 也能工作的不错。不过如果您会用 ctags 之类的工具,跳转起来更方便些。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)