vim 配置(ma6174 + YCM)

首先做准备工作

1.

sudo apt-get update
sudo apt-get install -f
sudo apt-get install python-dev
sudo apt-get install python-pip
sudo apt-get install git
sudo apt-get install cmake

2.执行

wget -qO- https://raw.github.com/ma6174/vim/master/setup.sh | sh -x

(这一步网速好些,大概要20分钟左右)
等待自动安装完成,完成之后,已经算是一个很好用的vim了,改下配色

3.编辑~/.vimrc
加入一行
set t_Co=256 然后再改配色,

安装传说中的YouCompleteMe补全插件

1.在 .vimrc中添加一句

Bundle ‘Valloric/YouCompleteMe’

2.然后保存推出,随便用vim 打开一个文件

输入 :BundleInstall

等待安装(这个过程需要大概20分钟)
3.成功之后,会在~/.vim/bundle 下出现YouCompleteMe目录

cd ~/.vim/bundle/YouCompleteMe
./install.py —clang-completer

这个过程需要下载clang,编译(需要时间多一些,大概30分钟左右)
参数–clang-completer是为了支持C/C++的补全,不需要可以不加。
编译过程比较长,耐心等待。

4.修改.vimrc配置文件
将下面的内容添加到.vimrc里面

" 寻找全局配置文件 let g:ycm_global_ycm_extra_conf ='~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py' " 禁用syntastic来对python检查
let g:syntastic_ignore_files=[".*\.py$"] 
" 使用ctags生成的tags文件 let g:ycm_collect_identifiers_from_tag_files = 1 " 开启语义补全
" 修改对C语言的补全快捷键,默认是CTRL+space,修改为ALT+;未测出效果 "let g:ycm_key_invoke_completion = '<M-;>'
" 设置转到定义处的快捷键为ALT+G,未测出效果 "nmap <M-g> :YcmCompleter GoToDefinitionElseDeclaration <C-R>=expand("<cword>")<CR><CR> 
"关键字补全 "let g:ycm_seed_identifiers_with_syntax = 1
" 在接受补全后不分裂出一个窗口显示接受的项 set completeopt-=preview " 让补全行为与一般的IDE一致
set completeopt=longest,menu
" 不显示开启vim时检查ycm_extra_conf文件的信息 let g:ycm_confirm_extra_conf=0 " 每次重新生成匹配项,禁止缓存匹配项
let g:ycm_cache_omnifunc=0
" 在注释中也可以补全 let g:ycm_complete_in_comments=1 " 输入第一个字符就开始补全
let g:ycm_min_num_of_chars_for_completion=1
" 错误标识符 let g:ycm_error_symbol='>>' " 警告标识符
let g:ycm_warning_symbol='>*'
" 不查询ultisnips提供的代码模板补全,如果需要,设置成1即可 " let g:ycm_use_ultisnips_completer=0
"

然后就差不多了
5.保存退出.vimrc ,打开一个C/C++源程序,体验其自动补全效果。
这里写图片描述
还可以对C++的STL库智能补全:
这里写图片描述

7.添加头文件
目前在include中,无法补全stdio.h等头文件,我们需要将/usr/include添加进去。路径添加到 ~/.vim/bundle/YouCompleteMe/cpp/ycm/.ycm_extra_conf.py 文件中的flags 数组中,每增加一个路径,前面要写’-isystem’。
这里写图片描述

以后需要boost库等其他的补全,也需要将相应的路径添加进去。

-.YoucompleteMe还有很多强大的功能,有兴趣可以继续探索。

你可能感兴趣的:(vim 配置(ma6174 + YCM))