基于Vim打造一个Go开发环境

最近开始学习使用Go,真心意识到工具就是生产力,特别是对于对于一门新的语言来说。 自己琢磨了几天,又经xiaoqiang同学提点,算是折腾了一个比较顺手的环境,总结一下。

首先说,我觉得写程序需要的一个基本环境包括:

这样就有了语法加亮,定义跳转和文档查询的功能。但是语法检查还是比较弱的,好在go无论是编译还是运行都非常方便,只需要执行命令:

就行,所以简单修改一下键映射: 之前写C++的时候喜欢用\rm快捷键来编译:

同理映射一个go编译的快捷键\rg,只需同样在.vimrc里面加入:

至于代码的自动补全,我觉得对于初学者来说简直太重要了.

我之前一直使用omnicomplete,但是这货的配置实在太恶心巴拉,用上Mac和Vundle之后,经xiaoqiang同学介绍,爱上了clang_complete,安装方法如下,依旧是.vimrc配置(本文后面的代码,如果没有$符号开头,都是写在.vimrc里面的配置):

可惜的是,clang_complete默认并不能支持Go语言的自动补全, 不过好在有https://github.com/nsf/gocode这个好东西。 安装起来也很方便:

成功之后,在$GOPATH/bin下面应该会有一个叫做gocode的binary。之后再安装一个Vim的插件vim-gocode来使用他,我使用的Vim插件管理器是之前推荐过的Vundle,有了它,妈妈再也不怕我不会安装Vim插件了:

然后,理论上咱们就可以使用快捷键<C-x><C-o>来进行代码补全了,但这个操作太Emacs了,小拇指要抽筋的节奏,不过我会告诉你还有supertab这个插件嘛?

像bash一样直接tab代码补全,帅不帅?

然后轮到文档的查询,其实使用Go自带的Vim插件的:Godoc 命令就已经能够实现文档查询了,但是如何实现一个更好看更快的查询呢,想象一个飞速秒开的MSDN?

这里推荐一下Dash,也是xiaoqiang同学向我热力推荐,并忽悠我花50块人民币买的一个Mac软件,Dash是一个集合了非常多的语言和框架的手册的查询软件,更爽的是它可以和很多其他的软件集成使用,其中就包括Vim,配置也很方便,依然是使用Vundle:

然后我自己照着手册又剽了一些常用的代码片段,什么打印啦,定义函数,type,interface啦,新建http handler啦等等。这样就能够使用常用的代码片段快速搭建简单的程序了。 这里推荐另一个插件snipmate:

最后我们打开Vim,安装之前配置这些插件的bundle:

Ok,看看效果。

最后分享一下自己的Vim files 配置,供参考。 lobatt/vim_files

本文网址:http://blog.perlfect.me/2013/07/13/go-coding-with-vim.html

comments powered by Disqus