Vim的go语言配置

Tags:

因为服务器没有图形界面,所以项配置一个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