基于vim搭建Go开发环境

Go作为一门新兴语言,发展的如火如荼啊。不过,目前还没有一个成熟的IDE。本文介绍基于vim搭建Go的开发环境,保证在具有vim的快感的同时,又支持Go的特性。

1. Go环境

首先,是安装Go。下载安装包,解压,然后设置环境变量

GOROOT:指向解压后的go路径。

GOPATH:指向用于开发的workspace。Go按照固定的文件结构组织该文件夹,可以很方便的发布代码,或者从其他仓库下载代码。需要在该目录下创建src/,pkg/,bin/三个文件夹

PATH:Go生成的所有的可执行程序都存放在$GOPATH/bin下,需要将它加入到PATH中。同时,需要把go tool加到PATH中,即$GOROOT/bin。

完成后,可以在src下简单写一个go程序,测试是否安装成功。该文件路径:$GOPATH/src/chosen0ne.com/hello.go

package main

import "fmt"

func main() {
	fmt.Printf("Hello, world.\n")
}
运行下列命令执行该程序:

go run chosen0ne.com/hello.go
如果有输出就说明安装成功。

2. Vim的Go插件

在$GOROOT/misc/vim下,对应的是支持go相关特性的vim插件,包括:语法高亮,缩进,Godoc支持等。按照方式在readme.txt中有说明。主要是在.vimrc加入以下代码:

  " Some Linux distributions set filetype in /etc/vimrc.
  " Clear filetype flags before changing runtimepath to force Vim to reload them.
  if exists("g:did_load_filetypes")
    filetype off
    filetype plugin indent off
  endif
  set runtimepath+=$GOROOT/misc/vim " replace $GOROOT with the output of: go env GOROOT
  filetype plugin indent on
  syntax on

然后:source ~/.vimrc,打开一个go文件,就会看到语法高亮。


3. Vim Tag list for Go

这个插件列出go文件中得变量、类型、函数等,并支持跳转。

需要安装tagbar插件,本身这个插件依赖于Exuberant ctags,但是它不支持go,需要通过gotags

1) 安装gotags

gotags是go编写的,安装很简单,直接运行:

go get -u github.com/jstemmer/gotags
就会将gotags安装到$GOROOT/bin下。

2) 安装配置tagbar

tagbar插件就和普通vim插件安装一样,可以通过pathtogen或者vundle。安装完之后,需要对Go进行配置,在.vimrc中加入以下代码:

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‘
\ }
输入:Tagbar就可以打开tagbar,右侧的窗口会显示一系列符号。可以通过Ctrl + ]跳至符号定义处,Ctrl + t返回。效果如下:



4. 语法检测

vim插件syntastic支持对各种语言进行语法检查,会标记处出错位置以及错误原因,效果图:



输入:Errors会打开quickfix窗口列出所有的错误列表,通过:bp,:bn在多个错误之间切换。:SyntasitcInfo会显示当前文件对应的语法checker信息。这个插件可以简单配置一下,具体可以查看帮助文档。

" location list always updated
let g:syntastic_always_populate_loc_list = 1
" collect errors when use multple checkers
let g:syntastic_aggregate_errors = 1

5. 代码提示

最后是大杀器。vim写代码被人诟病的就是不想IDE一样,可以基于语义的代码提示。通过gocode即可实现这个功能。gocode同样是go写的,安装方便:

go get -u github.com/nsf/gocode
然后cd到gocode/vim下,执行./update.sh,实际就是把vim插件拷贝到~/.vim/下。然后编辑go文件,就会有代码提示,效果图:



这样,Go的开发环境就配置成功了,敬请享用吧^-^

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。