最近准备把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/bin
export 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'
}