配置vim搭建golang开发环境

hxd861030 · · 2782 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

安装vundle

首先安装vundle,方便进行插件管理

  1. mdkir -p ~/.vim/bundle/
  2. git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle

然后在 ~/.vimrc 文件的前面添加如下内容

  1. set nocompatible " be iMproved
  2. filetype off " required!
  3. set rtp+=~/.vim/bundle/vundle/
  4. call vundle#rc()
  5. " let Vundle manage Vundle
  6. " " required!
  7. Bundle 'gmarik/vundle'
  8. filetype plugin indent on
  9. syntax on

go环境搭建

在开始下面的步骤前先搭建好系统上相应的go环境,设置好相应的GOROOT及GOPATH,并把GOROOT及GOPATH的bin路径加入到PATH中。 另外,在下面的一些安装步骤中,有些包或库要从google的代码库中下载,所以网络连通问题,各位自行解决哈,不然就会导致下载不了了。

安装google的官方vim库

在.vimrc里添加:

  1. Bundle 'cespare/vim-golang'

然后,启动vim,运行命令 :BundleInstall 安装,到其显示 Done 即可。

goimports

此插件用于解决麻烦的golang的import问题,其会自动化加入或去除未使用的包,但只限于标准库的包,其余包还是得手动管理。 运行命令下载安装goimports的库

  1. go get -v code.google.com/p/go.tools/cmd/goimports

完成后,在 .vimrc 中添加以下语句,进行关联

  1. if exists(#b:did_ftplugin_go_fmt#)
  2. finish
  3. endif
  4. if !exists(#g:go_fmt_commands#)
  5. let g:go_fmt_commands = 1
  6. endif
  7. if !exists(#g:gofmt_command#)
  8. let g:gofmt_command = #goimports#
  9. endif
  10. if g:go_fmt_commands
  11. command! -buffer Fmt call s:GoFormat()
  12. endif
  13. function! s:GoFormat()
  14. let view = winsaveview()
  15. silent execute #%!# . g:gofmt_command
  16. if v:shell_error
  17. let errors = []
  18. for line in getline(1, line('$'))
  19. let tokens = matchlist(line, '^\(.\{-}\):\(\d\+\):\(\d\+\)\s*\(.*\)')
  20. if !empty(tokens)
  21. call add(errors, {#filename#: @%,
  22. \#lnum#: tokens[2],
  23. \#col#: tokens[3],
  24. \#text#: tokens[4]})
  25. endif
  26. endfor
  27. if empty(errors)
  28. % | # Couldn't detect gofmt error format, output errors
  29. endif
  30. undo
  31. if !empty(errors)
  32. call setloclist(0, errors, 'r')
  33. endif
  34. echohl Error | echomsg #Gofmt returned error# | echohl None
  35. endif
  36. call winrestview(view)
  37. endfunction
  38. let b:did_ftplugin_go_fmt = 1

这样,以后在编写代码时,只需运行 :Fmt 命令即可自动化import标准包了,解决go语言的一大烦恼呀。

go-def

代码查找时的自动跳转,如查看函数或结构体的定义。

  1. go get -v code.google.com/p/rog-go/exp/cmd/godef

在 .vimrc 里添加

  1. Bundle 'dgryski/vim-godef'

然后,启动vim,运行命令 :BundleInstall 安装,到其显示 Done 即可。 使用方法:打开一个Go代码文件,把光标移到一个函数上,在命令模式下输入gd。vim会显示这个函数的定义。详细配置参见 godef

gocode:代码补全提示

此插件可提示一些函数用法,及变量名称的补全,个人感觉后一种用途还更实用些

  1. go get -u github.com/nsf/gocode

在 ~/.vimrc 中添加如下内容

  1. Plugin 'nsf/gocode', {'rtp': 'vim/'}

然后,启动 vim,运行 :PluginInstall 命令,待其安装完成。 使用方法: 在需要提示时,即可。

gotags:标签边栏

此插件可在边栏显示当前文件包含哪些函数定义,结构体定义等等.

  1. go get -u github.com/jstemmer/gotags

在 .vimrc 里添加

  1. Bundle 'majutsushi/tagbar'

然后,启动vim,运行命令 :BundleInstall 安装,到其显示 Done 即可。

在 .vimrc 文件里添加如下内容

  1. nmap <F8> :TagbarToggle<CR>
  2. let g:tagbar_type_go = {
  3. \ 'ctagstype' : 'go',
  4. \ 'kinds' : [
  5. \ 'p:package',
  6. \ 'i:imports:1',
  7. \ 'c:constants',
  8. \ 'v:variables',
  9. \ 't:types',
  10. \ 'n:interfaces',
  11. \ 'w:fields',
  12. \ 'e:embedded',
  13. \ 'm:methods',
  14. \ 'r:constructor',
  15. \ 'f:functions'
  16. \ ],
  17. \ 'sro' : '.',
  18. \ 'kind2scope' : {
  19. \ 't' : 'ctype',
  20. \ 'n' : 'ntype'
  21. \ },
  22. \ 'scope2kind' : {
  23. \ 'ctype' : 't',
  24. \ 'ntype' : 'n'
  25. \ },
  26. \ 'ctagsbin' : 'gotags',
  27. \ 'ctagsargs' : '-sort -silent'
  28. \ }

使用方法:按 F8 或 输入命令 :TagbarToggle ,即可显示出边栏。


相关文章:http://tonybai.com/2014/11/07/golang-development-environment-for-vim/


有疑问加站长微信联系

本文来自:CSDN博客

感谢作者:hxd861030

查看原文:配置vim搭建golang开发环境

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:812540095

2782 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传