#前言
此文章时间有些久了,参考时请慎重
为vim安装YouCompleteMe我已经是不止一次了,两次ubuntu,一次MacOS,一次阿里云的centos,最后一次由于gcc版本太低当时没找到解决方案就把源码下了在机子上编译导致cpu100%运行直接挂了,也就放弃了…现在在虚拟机上装了一次centos,想再尝试一次,遇到了一些坑,不过最后还是成功了,附上截图:
2017.10.29更:最近租了一个vultr的centos主机当vps用,也在上面安装了vim以及ycm,又踩了一些坑
➡️ 主机为安装完整的python开发环境导致vim无法开启对python插件对支持
➡️ 主机的内存不够,导致编译过程中由于内存用尽而崩溃:virtual memory exhausted: Cannot allocate memory
#先说坑(解决方案在后面安装步奏中会说)
vim版本低
明明就差小数点后几位但是就不行,索性就装了vim8.0
gcc版本不支持c++11
现在发现下一个centos工具包就行了,其中包含最新的gcc
vim不支持python
在编译vim源代码时加上一些后缀就行了
./install.py时说缺少依赖
这个就按照出错提示中要求输的命令输一下就行了
sudo yum upgrade
sduo yum update
##下载git
sudo yum install git
sudo yum install centos-release-scl -y
sudo yum install devtoolset-3-toolchain -y
sudo yum install gcc-c++
sudo scl enable devtoolset-3 bash
yum install ncurses-devel
wget https://github.com/vim/vim/archive/master.zip
unzip master.zip
cd vim-master
cd src/
./configure --with-features=huge -enable-pythoninterp --with-python-config-dir=/usr/lib/python2.7/config
sudo make
sudo make install
export PATH=/usr/local/bin:$PATH
⚠️注意 这里的--with-python-config-dir=/usr/lib/python2.7/config
等号后的路径每
个机子不一定相同,总之需要找到 config
这个文件夹。
其次,我后面在vultr的centos主机上安装vim时出现了无论如何都无法为添加vim添加python支持的问题,后来发现是这个主机没有安装python开发环境python-dev
,执行以下命令
安装
sudo yum upgrade
sudo yum install python-devel
####这里列举一些 ./configure 后面的配置选项
####关于vim的安装路径
默认新的vim是安在/usr/bin/local/中的,但是PATH中会首先找到/usr/bin/中旧的vim,所以不介意的话把旧的vim删了也可以,也可以输入下面的命令来使命令行中的vim指令指向 /usr/local/bin/vim 的程序
alias vim='/usr/local/bin/vim'
git clone https://github.com/Valloric/YouCompleteMe.git ~/.vim/bundle/YouCompleteMe
cd ~/.vim/bundle/YouCompleteMe
git submodule update --init --recursive
在 ~/ 下创建文件 .vimrc,输入一下内容
set nocompatible
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'gmarik/Vundle.vim'
call vundle#end()
filetype plugin indent on
使用vim打开,后输入 :PluginInstall
完成后在 'Plugin 'gmarik/Vundle.vim’的下一行输入 'Plugin ‘Valloric/YouCompleteMe’,保持后退出
cd ~/.vim/bundle/YouCompleteMe
./install.py --clang-completer
由于我也希望ycm能进行nodejs和golang的补全,所以可以在./install.py 后添加如下后缀
./install.py --clang-completer --gocode-completer --tern-completer
⚠️注意:在对yum进行编译时如果你的主机存不够的话编译会中断,比如更新文章前我在为vultr的centos主机配ycm,因为是当vps用的只买了$5/月的,内存只有1G,在编译时到98%时崩溃进程终止TT
查阅资料发现需要添加一个 swap file
,教程网址戳此
下面是指令,复制粘贴就行
su
dd if=/dev/zero of=/swapfile1 bs=1024 count=524288
mkswap /swapfile1
swapon /swapfile1
vi /etc/fstab
# edit /etc/fstab file, add the following line
/swapfile1 none swap sw 0 0
# save and quit
free -m
swapon -s
安装完成后将.yum_extra_conf.py复制一份到 ~/
cp ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py ~/
之后打开在~/中的文件,进行找到此为止进行添加
...
'-isystem',
'/usr/include',
'-isystem',
'/usr/include/c++/',
'-isystem',
'/usr/include/i386-linux-gnu/c++'
...
完毕后打开.vimrc进行配置
let g:ycm_global_ycm_extra_conf='~/.ycm_extra_conf.py' "设置全局配置文件的路径
let g:ycm_seed_identifiers_with_syntax=1 " 语法关键字补全
let g:ycm_confirm_extra_conf=0 " 打开vim时不再询问是否加载ycm_extra_conf.py配置
let g:ycm_key_invoke_completion = '' " ctrl + a 触发补全
set completeopt=longest,menu "让Vim的补全菜单行为与一般IDE一致(参考VimTip1228)
更过个性化配置可以自行百度或google
centos中gcc的升级
关于ycm的安装与文件配置1
关于ycm的安装与文件配置2
关于vim的更新
关于添加vim8.0的python支持1
关于添加vim8.0的python支持2
新版vim的环境变量路径设置