Golang vim开发环境设置

1 简介

上一篇博客我们介绍了Golang的安装、编译、运行,本篇博客我们介绍如何设置面向Golang的vim开发环境。原生的vim无法自行识别golang关键字,开发环境如同编辑普通文本文件,无法高亮显示,更不要说自动补全等功能。为此,我们需要在vim中加入面向golang的插件vim-go。同时,根据vim-go的安装引导,我们还需要安装YouCompleteMe(YCM)。


2 安装Vundle

Vundle的git页面https://github.com/VundleVim/Vundle.vim

gitclonehttps://github.com/gmarik/Vundle.vim.git~/.vim/bundle/Vundle.vim

3 安装vim-go

vim-go的git页面 https://github.com/fatih/vim-go

gitclonehttps://github.com/fatih/vim-go.git~/.vim/bundle/vim-go

4 安装YCM

YCM的git页面 https://github.com/Valloric/YouCompleteMe

4.1 前提条件

vim版本7.3.584以上

安装依赖

sudoapt-getinstallbuild-essentialcmake
sudoapt-getinstallpython-dev

4.2 git clone

gitclonehttps://github.com/Valloric/YouCompleteMe.git~/.vim/bundle/YouCompleteMe

4.3 编译安装

进入~/.vim/bundle/YouCompleteMe目录,执行

gitsubmoduleupdate--init--recursive
./install.py�clang-completer�gocode-completer

这两条命令执行时间较长,尤其第一条,可以并行做点别的。


5 配置

编辑~/.vimrc

"-------------
"Vundle
"https://github.com/gmarik/Vundle.vim
"-------------

setnocompatible"beiMproved,required
filetypeoff"required

"settheruntimepathtoincludeVundleandinitialize
setrtp+=~/.vim/bundle/Vundle.vim
callvundle#begin()
"alternatively,passapathwhereVundleshouldinstallplugins
"callvundle#begin('~/some/path/here')

"letVundlemanageVundle,required
Plugin'gmarik/Vundle.vim'

"Thefollowingareexamplesofdifferentformatssupported.
"KeepPlugincommandsbetweenvundle#begin/end.
"pluginonGitHubrepo
""Plugin'tpope/vim-fugitive'
"pluginfromhttp://vim-scripts.org/vim/scripts.html
""Plugin'L9'
"GitpluginnothostedonGitHub
""Plugin'git://git.wincent.com/command-t.git'
"gitreposonyourlocalmachine(i.e.whenworkingonyourownplugin)
""Plugin'file:///home/gmarik/path/to/plugin'
"Thesparkupvimscriptisinasubdirectoryofthisrepocalledvim.
"Passthepathtosettheruntimepathproperly.
""Plugin'rstacruz/sparkup',{'rtp':'vim/'}
"AvoidanameconflictwithL9
""Plugin'user/L9',{'name':'newL9'}

"InstallVim-go
Plugin'fatih/vim-go'
"InstallYCM
Plugin'Valloric/YouCompleteMe'

"AllofyourPluginsmustbeaddedbeforethefollowingline
callvundle#end()"required
filetypepluginindenton"required
"Toignorepluginindentchanges,insteaduse:
"filetypepluginon
"
"Briefhelp
":PluginList-listsconfiguredplugins
":PluginInstall-installsplugins;append`!`toupdateorjust:PluginUpdate
":PluginSearchfoo-searchesforfoo;append`!`torefreshlocalcache
":PluginClean-confirmsremovalofunusedplugins;append`!`toauto-approveremoval
"
"see:hvundleformoredetailsorwikiforFAQ
"Putyournon-Pluginstuffafterthisline

setsmarttab
setshiftwidth=4
settabstop=4
setsofttabstop=4
setexpandtab
autocmdFileTypegosetexpandtab

6 参考

https://github.com/gmarik/Vundle.vim

http://studygolang.com/articles/2927

https://github.com/fatih/vim-go

http://howiefh.github.io/2015/05/22/vim-install-youcompleteme-plugin/

https://github.com/Valloric/YouCompleteMe

相关文章

什么是Go的接口? 接口可以说是一种类型,可以粗略的理解为他...
1、Golang指针 在介绍Golang指针隐式间接引用前,先简单说下...
1、概述 1.1 Protocol buffers定义 Protocol buffe...
判断文件是否存在,需要用到"os"包中的两个函数: os.Stat(...
1、编译环境 OS :Loongnix-Server Linux release 8.3 CPU指...
1、概述 Golang是一种强类型语言,虽然在代码中经常看到i:=1...