最近准备把Go语言的开发环境迁移到linux下来,因为是用xshell ssh到Ubuntu server上的,Sublime肯定是没有办法用了,反正之前Vim用的也挺熟,索性就转移到Vim下开发了。
linux下Go的安装很方便,把官方的包下载下来,直接解压到home目录下,再配置下环境变量就可以了。我用的是Ubuntu Server,只要在home目录下的.profile文件中加入以下内容
export GOROOT=$HOME/go #go语言安装包的位置export PATH=$PATH:$GOROOT/binexport GOPATH=$HOME/mygo #自己的代码放在mygo下export PATH=$PATH:$GOPATH/bin
Vim的插件管理用的是Vundle,在github上有备份,这里主要是添加Vim下Go语言的自动补全插件。
先用Go的命令行工具把gocode装上go get github.com/nsf/gocode
再添加Vim对应的插件
Bundle 'dgryski/vim-godef'
最后配置下gocode工具gocode set propose-builtins true
执行gocode set命令查看返回值
默认情况下,gocode只会搜索$GOPATH/pkg/$GOOS_$GOARCH``
``$GOROOT/pkg/$GOOS_$GOARCH
这两个目录下的包,如果有其他的地方要搜索可以调用gocode set lib-path path来添加。
安装完上面的插件之后,在vim中编辑go文件就可以高亮显示了,如果需要自动补全的话,按下Ctrl+x Ctrl + o就会弹出补全列表。
查看当前文件的函数定义和结构体定义可以通过gotags配合tagbar插件实现
安装gotagsgo get github.com/jstemmer/gotags
在vimrc里加上tagbar的配置
let g:tagbar_type_go = {'ctagstype' : 'go','kinds' : ['p:package','i:imports:1','c:constants','v:variables','t:types','n:interfaces','w:fields','e:embedded','m:methods','r:constructor','f:functions'],'sro' : '.','kind2scope' : {'t' : 'ctype','n' : 'ntype'},'scope2kind' : {'ctype' : 't','ntype' : 'n'},'ctagsbin' : 'gotags','ctagsargs' : '-sort -silent'}