版权声明:本文参考了《YouCompleteMe 官方文档》。未经作者允许,严禁用于商业出版,否则追究法律责任。网络转载请注明出处,这是对原创者的起码的尊重!!!
1 简介
- 插件介绍:YouCompleteMe是一款针对Vim的快速,即用型的模糊搜索代码补全引擎。包括以下几种引擎:
- 基于标识符的引擎,可与每种编程语言一起使用
- 基于Clang的引擎,为C / C ++ / Objective-C / Objective-C ++(C系列)提供本地语义代码补全
- 基于Jedi的Python 2和3的补全引擎
- 基于OmniSharp的C#补全引擎
- Go的Gocode和Godef语义引擎的组合,
- 基于TSServer的TypeScript完成引擎,
- 基于Tern的JavaScript补全引擎,
- 基于racer的Rust补全引擎,
- 基于jdt.ls的Java实验性补全引擎。
- 基于omnifunc的补全引擎,它使用来自Vim的omnicomplete系统的数据为许多其他语言(Ruby,PHP等)提供语义补全。
- 基于UltiSnips的代码片补全引擎
- 仓库地址:https://github.com/Valloric/YouCompleteMe
2 安装(Ubuntu 16.04)
- 首先确保Vim版本至少为7.4.1578,并且支持Python 2或Python 3。
vim --version | grep python
,显示+python
则支持,否则安装支持python2的vim-nox-py2,或者使用源码重新编译vim
- 使用Vundle安装YCM,以支持python2或python3
git clone https://github.com/Valloric/YouCompleteMe.git ~/.vim/bundle/YouCompleteMe
cd ~/.vim/bundle/YouCompleteMe
git submodule update --init --recursive
vim ~/.vimrc
- 在
call vundle#begin()
和call vundle#end()
之间添加Plugin 'Valloric/YouCompleteMe'
:wq
vim
:PluginInstall
- 安装编译环境
sudo apt install build-essential cmake
sudo apt install python-dev python3-dev
sudo apt install ctags
sudo apt install gcc g++
sudo apt install clang libclang-dev
- 编译YCM
cd ~/.vim/bundle/YouCompleteMe
./install.py
- 语言支持:
- C/C++/Objective-C/Objective-C++:编译时添加
--clang-completer
- C#:先安装Mono,编译时添加
--cs-completer
- Go:先安装Go,编译时添加
--go-completer
- TypeScript:先安装 Node.js and npm,然后使用
npm install -g typescript
安装TypeScript SDK - JavaScript: 先安装 Node.js and npm,编译时添加
--js-completer
- Rust: 先安装Rust,编译时添加
--rust-completer
- Java: 先安装JDK8,编译时添加
--java-completer
- 全部支持:先安装所有的依赖环境,编译时添加
--all
- C/C++/Objective-C/Objective-C++:编译时添加
注意:
如果提示fatal: unable to access 'https://go.googlesource.com/tools/': Failed to connect to go.googlesource.com 那就是GFW做的,自己想办法吧
3 C族语义补全配置
vim ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/.ycm_extra_conf.py
- 在flags[]列表中添加头文件路径,编译选项:
'-isystem',
'C/C++ 头文件绝对路径',
'-I',
'C/C++ 头文件绝对路径',
'-std',
'C/C++ 标准',
'-x',
'目标语言',
-
如果不想因为c++11新特性发出警告就添加’-Wc