基于vim搭建Go开发环境 - Go语言中文社区

基于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安装到$GOPATH/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的开发环境就配置成功了,敬请享用吧^-^

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/chosen0ne/article/details/40782991
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2019-08-26 23:46:32
  • 阅读 ( 1167 )
  • 分类:Go环境配置

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢