打造你的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!