AUTH:PHILO VERSION:1.2
开发环境的必要特征
(project,lint,hint,autocomplete)
要实现上面几点我们来一步一步的配置。
我的大环境
- OSX
- GO 1.4
- HomeBrew
go 环境安装
这一部分是最重要的,如果没有它,每次build的时候出现 too many errors 心里真的是非常难过的。
-
环境配置:(golint,gooracle,mercurial)
1. 安装mercurial: brew install mercurial> 这个东西是用来做版本管理的,也是下载代码的工具类似git,貌似google的项目用的挺多的。
2. 安装golint:$ go get github.com/golang/lint $ go install github.com/golang/lint
-
安装gooracle
go get code.google.com/p/go.tools/cmd/oracle
-
安装goimport
go get golang.org/x/tools/cmd/goimports
-
安装gocode
go get -u github.com/nsf/gocode
-
安装 godef
go get -v code.google.com/p/rog-go/exp/cmd/godef go install -v code.google.com/p/rog-go/exp/cmd/godef
-
安装环境的时候经常会出现下载不下来的问题,大概是我网络不好吧。连接google经常出现问题。> 解决方案:
golang中国的下载频道中有一个第三方包的下载工具,只要输入地址之后人家会给你提供下载tar包的。
放到gopath中就ok了。
此步骤只能替代go get的步骤,最后还是需要go install go install 之后会在
$GOPATH/bin/
中出现各种工具文件
- gocode 提供代码补全
- godef 代码跳转
- gofmt 自动代码整理
- golint 代码语法检查
- goimports 自动整理imports
- oracle 代码callgraph查询(plugin中还在todolist中,但是不配置一直报错。实在烦。)
> 最后不要忘记复制上面的命令到 $GOROOT/bin/下面
-
最后的配置结果(安装完之后 Package->Go Plus->Display Go Information)
Cover Tool: /usr/local/go/pkg/tool/darwin_amd64/cover Vet Tool: /usr/local/go/pkg/tool/darwin_amd64/vet Format Tool: /Users/Li-jianying/git/bin/goimports Lint Tool: /usr/local/go/bin/golint Gocode Tool: /Users/Li-jianying/git/bin/gocode Gocode Status: Enabled Oracle Tool: /Users/Li-jianying/git/bin/oracle Git: /usr/bin/git Mercurial: /usr/local/Cellar/mercurial/3.2.1/bin/hg PATH: /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/go/bin
没有红色的行就没有问题了。
-
项目管理,自动文件跳转
-
使用细节:
-
总结:
感觉这个插件的treeview用途的确不是很大,因为正常项目的项目文件会很多。
不过是快速打开项目(文件夹)是非常方便的,配合快速打开文件还是相当爽的。 -
按快捷键之后的效果展示:
自动语法检,自动补全
插件go-plus,autocomplete-plus(dependance),gocode
使用 apm install 安装就可以了。速度还可以。-
使用细节 在保存的时候
-
使用细节: 在编辑的时候
效果演示
## 查找定义
灵活的运行
- 安装插件atom-runner
- 修改源代码中的go run运行为
go: 'sh [绝对路径到你的全局run脚上] '+atom.project.rootDirectories[0].path
- 脚本的 $1 会是你项目运行的路径。然后你的所有项目都可以添加一个run.sh 来指定一个构建运行的方案。
- 做完之后不管当前在查看什么文件都可以运行整个项目。
- 其他语言也可以这样做。毕竟单个文件的项目不是很常见(开发的时候)
总结
- 我这里只是总结了我用的所有的golang相关的atom插件。
- 要相信golang使用编辑器就够用的事实了。因为
go tool
实在是太好用了。
我的key map
-
cmd-d
duplicate line -
cmd-w
关闭标签 -
cmd-r
文件内的标签列表 -
cmd-e
使用选中的内容做搜索的pattern -
shift-cmd-f
project内部搜索,这个非常实用。command 配置(keymap.cson)
>'.platform-darwin atom-text-editor': 'shift-cmd-D': 'find-and-replace:select-next'
感谢golang
- golang能有如此的开发体验,以及在如此低的版本中表现的这么好。实在是大牛赐予我们最好的礼物了。
- golang的有如此好的开发工具加上各种扩展性比较强的编辑器(vim,emacs,sublime,atom等)开发体验的确是非常好的。
转自 http://www.philo.top/2015/02/06/golang-%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE%E5%BB%BA%E8%AE%AE/
原文链接:https://www.f2er.com/go/190535.html