因为服务器没有图形界面,所以项配置一个vim作为go语言开发工具。 服务器是centos,所以以下命令适用于centos系统:
首先检查vim是否开启Python支持:
运行vim --version |grep python
如果打印出的Python前面是减号,说明没有加入python支持,后面配置YCM就会报错。所以让我们重新编译vim。
更新源
sudo yum upgrade
sduo yum update
升级gcc
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
安装Python开发环境
sudo yum upgrade
sudo yum install python-devel
升级vim
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
准备工作就绪,可以下载编译YCM了
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 --gocode-completer
如果需要支持C类的补全,用下面的命令。
./install.py --clang-completer
.vimrc的设置请参考官方文档。
然后,安装vim-go插件
Plugin 'fatih/vim-go'
,然后PluginInstall.
然后安装工具包的依赖
:GoInstallBinaries的执行是交互式的,你需要回车确认。
但是不幸的是,在安装时由于万里长城,一些包下不下来,只好一个一个git clone,然后go install.
vim ~/.vim/bundle/vim-go/plugin/go.vim
可以看到所有依赖包了,接下来就是把所有被墙的包git+go install。
Vim-go默认是用ultisnips引擎插件,但这个插件需要单独安装。
Plugin 'SirVer/ultisnips'
Plugin 'honza/vim-snippets'
官方说这个插件和YCM冲突,所以在.vimrc里面设置一下
" YCM settings
let g:ycm_key_list_select_completion = ['', '']
let g:ycm_key_list_previous_completion = ['']
let g:ycm_key_invoke_completion = '<C-Space>'
" UltiSnips setting
let g:UltiSnipsExpandTrigger="<tab>"
let g:UltiSnipsJumpForwardTrigger="<c-b>"
let g:UltiSnipsJumpBackwardTrigger="<c-z>"
这样让YCM通过回车和向下的箭头来做list item正向选择,通过向上箭头做反向选择。通过ctrl+space来原地触发补齐提示。
其他个性化配置详见官方文档。
Reference: > Centos7安装vim8.0 + YouCompleteMe > centos安装youcompleteme及简单使用 > Golang开发环境搭建-Vim篇 > vim 入坑指南(六)插件 UltiSnips