打造你的vim go开发神器

Posted 酸酸哥大讲堂

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了打造你的vim go开发神器相关的知识,希望对你有一定的参考价值。

我发现技术写作还是蛮难坚持的一个事,最近两个版本工期太紧,一直没抽出时间来总结,今天正好升级自己的vim插件,写一篇当做记录了


古人云:工欲善其事,必先利其器


vim是我从12年开始将电脑系统转成linux后第一个选用的开发代码的工具,之前写php搭建过vim-php开发IDE,引个流,这是早期在新浪博客转载的一篇:


http://blog.sina.com.cn/s/blog_700e11ff010171zp.html

ubuntu下配置VIM做PHP的IDE开发环境),


这次写这篇文章是看了谢大转的这一篇,


https://arslan.io/2017/09/14/the-ultimate-guide-to-writing-a-go-tool/, 


很吊的一个生成json tag的vim命令,只需要在vim中输入:GoAddTag  json 即可生成美妙的json tag,当然,不止可以生成json还可以生成xml,依赖的go第三方包:


https://github.com/fatih/gomodifytags


个人觉得是开发的利器啊,尝试配置了一下


先盗个图



使用这个之前,需要先安装go-vim环境


这里不得不提到vim-go,Vim-go是当前使用最为广泛的用于搭建Golang开发环境的vim插件,这里我同样使用vim-go作为核心和基础进行环境搭建的



1、安装Vundle.vim

Vundle.vim的安装步骤如下:

mkdir ~/.vim/bundle
git clone https://github.com/gmarik/Vundle.vim.git 

~/.vim/bundle/Vundle.vim   


vim配置如图:


在vim内执行 在Vim内执行 :PluginInstall, Vundle.vim会在左侧打开一个Vundle Installer Preview子窗口,窗口下方会提示:“Processing 'fatih/vim-go'”,待安装完毕后,提示信息变 成“Done!”。


如图:


这时,我们可以看到.vim/bundle下多了一个vim-go文件夹

2、安装go.tools Binaries

vim-go安装说明中提到所有必要的binary需要先安装好,比如gocode、godef、goimports等。


通过:GoInstallBinaries,这些vim-go依赖的二进制工具将会自动被下载,并被安装到$GOBIN下或$GOPATH/bin下。


ok,到这一步就是整个坑的地方,你会发现很多二进制工具都无法下载,尤其是golang.org/x/tools/cmd 这个目录下的,解决方法嘛,就是自己手动去获取,然后编译,转移到$GOPATH/bin下,结果go get时报错了,不得不推荐一个好用的网址:https://gopm.io,你可以在这里下到大部分你想要的go第三方工具包,然后按照GoInstallBinaries错误提示开始挨个手动添加二进制工具,然后打开vim,执行成功


记录一下目前vim-go支持的功能

- 新起一行输入fmt.然后ctrl+x, ctrl+o,Vim 会弹出补齐提示下拉框,不过并非实时跟随的那种补齐,这个补齐是由gocode提供的;
– 输入一行代码:time.Sleep(time.Second),执行:GoImports,Vim会自动导入time包;
– 将光标移到Sleep函数上,执行:GoDef或命令模式下敲入gd,Vim会打开$GOROOT/src/time/sleep.go中 的Sleep函数的定义。执行:b 1返回到hellogolang.go;
– 执行:GoLint,运行golint在当前Go源文件上;
– 执行:GoDoc,打开当前光标对应符号的Go文档;
– 执行:GoVet,在当前目录下运行go vet在当前Go源文件上;
– 执行:GoRun,编译运行当前main package;
– 执行:GoBuild,编译当前包,这取决于你的源文件,GoBuild不产生结果文件;
– 执行:GoInstall,安装当前包;
– 执行:GoTest,测试你当前路径下地_test.go文件;
– 执行:GoCoverage,创建一个测试覆盖结果文件,并打开浏览器展示当前包的情况;
– 执行:GoErrCheck,检查当前包种可能的未捕获的errors;
– 执行:GoFiles,显示当前包对应的源文件列表;
– 执行:GoDeps,显示当前包的依赖包列表;
– 执行:GoImplements,显示当前类型实现的interface列表;

- 执行:GoRename [to],将当前光标下的符号替换为[to];


总之,用起来非常爽就对了


希望这篇文章能帮到你

以上是关于打造你的vim go开发神器的主要内容,如果未能解决你的问题,请参考以下文章

GO语言: 双单链表队列进出栈打造一个简易的数据结构库 以及测试你的程序是否存在BUG!

Alibaba/IOC-golang 正式开源 ——打造服务于go开发者的IOC框架

Go使用grpc+http打造高性能微服务

vim配置Go开发环境

Linux下golang开发环境搭建

打造你的开发神器——介绍Android Studio上的几个插件