配置YouCompleteMe
安装git
sudo apt-get install git
配置github(可到官网注册)
https://github.com
配置
git config --global user.name “用户名”
git config --global user.email “邮箱”
检查vim的环境
vim --version
1.你的可能vim是7.4.*版本, YouCompleteMe需要Vim 7.4.1578+所以需要升级
2.这里升级安装的是8.0以上的版本
移除旧版本
sudo apt-get remove vim -y
安装必要组件
sudo yum install ncurses-devel python-devel -y
下载源码编译安装
git clone https://github.com/vim/vim.git
编译安装(依次输入)(设置编译参数)
cd vim/src
./configure --with-features=huge --enable-pythoninterp=yes --enable-cscope --enable-fontset --with-python-config-dir=/usr/lib64/python2.7/config --enable-python3interp=yes --with-python-config-dir=/usr/lib/python3.6/config --enable-multibyte --prefix=/usr/local/vim/
make -j2 && make install
安装YouCompleteMe准备条件
(1)最新版的Vim,支持python。
终端输入命令:
vim –version
查看版本信息,若python前有‘+’即可。
然后终端执行命令:
sudo apt-get install python-dev
装的过程中若遇到问题,依次执行以下命令:
sudo apt-get update
sudo apt-get install -f
之后重试安装:
sudo apt-get install python-dev
(2)安装cmake
sudo apt-get install cmake
(3)安装clang
sudo apt-get install clang
安装Vundle插件管理器
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
配置.vimrc文件
1.根目录下新建
vim ~/.vimrc
2.在里面加入以下代码
set nocompatible " be iMproved, required
filetype off " required
" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" alternatively, pass a path where Vundle should install plugins
"call vundle#begin('~/some/path/here')
" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'
" All of your Plugins must be added before the following line
call vundle#end() " required
filetype plugin indent on " required
3.保存退出后,打开vim,运行:
:PluginInstall
4.左下角出现Done!时安装完成
安装YouCompleteMe文件
1.直接在vimrc中添加(vundle#begin() 和 Vundle#end()中添加(其他插件也是如此)
Plugin 'Valloric/YouCompleteMe'
2.保存退出进入vim安装(时间可能有点漫长,同样左下角出现Done!时完成)
:PluginInstall
编译YouCompleteMe
cd ~/.vim/bundle/YouCompleteMe/
./install.sh --clang-completer
参数–clang-completer是为了支持C/C++的补全
找到配置文件 .ycm_extra_conf.py
cd ~/.vim/bundle/YouCompleteMe/ third_party/ycmd/
ls -a
就可以看到
自行在YoucompleteMe/中创建cpp/ycm目录,将 .ycm_extra_conf.py拷贝进去
cd ~/.vim/bundle/YouCompleteMe
mkdir cpp
mkdir cpp/ycm
cp third_party/ycmd/.ycm_extra_conf.py cpp/ycm/
将下面的内容添加到.vimrc里面
" 寻找全局配置文件
let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/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
"关键字补全
"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
到此结束(可自己编写一个C/C++试试)
除第一行
" 寻找全局配置文件
let g:ycm_global_ycm_extra_conf = ‘~/.vim/bundle/YouCompleteMe/cpp/ycm/.ycm_extra_conf.py’
其他的可自行添加修改
c/c++基本配置
为添加c/c++头文件
目前在include中,无法补全stdio.h等头文件,我们需要将/usr/include添加进去。路径添加到 ~/.vim/bundle/YouCompleteMe/cpp/ycm/.ycm_extra_conf.py 文件中的flags 数组中,每增加一个路径,前面要写 ‘-isystem’,
先用 echo | clang -v -E -x c - 查看系统C库文件所在的目录。
先用 echo | clang -v -E -x c++ - 查看系统C++库文件所在的目录。
echo | clang -v -E -x c -
echo | clang -v -E -x c++ -
cd ~/.vim/bundle/YouCompleteMe/cpp/ycm/
vim .ycm_extra_conf.py
例如我的:
'-isystem',
' /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8',
'-isystem',
'/usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/x86_64-linux-gnu/c++/8',
'-isystem',
'/usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/backward',
'-isystem',
'/usr/include/clang/8.0.0/include',
'-isystem',
'/usr/local/include',
'-isystem',
'/usr/include/x86_64-linux-gnu',
'-isystem',
'/usr/include',
'-Wall',
剩下的自行摸索
vim基本配置
进入~/.vimrc中添加
set nocompatible "关闭与vi的兼容模式
set number "显示行号
set nowrap "不自动折行
set showmatch "显示匹配的括号
set scrolloff=3 "距离顶部和底部3行"
set encoding=utf-8 "编码
set fenc=utf-8 "编码
set mouse=a "启用鼠标
set hlsearch "搜索高亮
syntax on "语法高亮
set tabstop=4 "tab宽度
set softtabstop=4
set shiftwidth=4
set textwidth=79 "行最大宽度
set expandtab "tab替换为空格键
set autoindent "自动缩进
set fileformat=unix "保存文件格式
保存退出,大功告成。