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/

开发环境的必要特征

  1. 项目管理
  2. 快速文件跳转
  3. 自动语法检查
  4. 自动补全
  5. 查找定义
  6. 启动速度快
  7. 如果自己有需求的话插件可以随便写
  8. 灵活的运行配置

(project,lint,hint,autocomplete)

要实现上面几点我们来一步一步的配置。

我的大环境

  1. OSX
  2. GO 1.4
  3. HomeBrew

go 环境安装

这一部分是最重要的,如果没有它,每次build的时候出现 too many errors 心里真的是非常难过的。

  1. 环境配置:(golint,gooracle,mercurial)

    1. 安装mercurial: brew install mercurial > 这个东西是用来做版本管理的,也是下载代码的工具类似git,貌似google的项目用的挺多的。
    2. 安装golint: shell $ go get github.com/golang/lint $ go install github.com/golang/lint
    3. 安装gooracle shell go get code.google.com/p/go.tools/cmd/oracle
    4. 安装goimport shell go get golang.org/x/tools/cmd/goimports
    5. 安装gocode shell go get -u github.com/nsf/gocode
    6. 安装 godef shell go get -v code.google.com/p/rog-go/exp/cmd/godef go install -v code.google.com/p/rog-go/exp/cmd/godef
  2. 安装环境的时候经常会出现下载不下来的问题,大概是我网络不好吧。连接google经常出现问题。 > 解决方案: > golang中国的下载频道中有一个第三方包的下载工具,只要输入地址之后人家会给你提供下载tar包的。 > 放到gopath中就ok了。 > 此步骤只能替代Go get的步骤,最后还是需要go install

  3. go install 之后会在 $GOPATH/bin/ 中出现各种工具文件

    1. gocode 提供代码补全
    2. godef 代码跳转
    3. gofmt 自动代码整理
    4. golint 代码语法检查
    5. goimports 自动整理imports
    6. oracle 代码callgraph查询(plugin中还在todolist中,但是不配置一直报错。实在烦。)

最后不要忘记复制上面的命令到 $GOROOT/bin/下面

  1. 最后的配置结果(安装完之后 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 没有红色的行就没有问题了。

项目管理,自动文件跳转

  1. 插件:project-manager >这个插件是非常hot的,在atom.io的首页上排名还是非常靠前的。
  2. 使用细节:
    1. 配合tree view ( cmd - \) 打开关闭project file
    2. 搜索项目文件 ( cmd -t ) > 输入的时候按照顺序输入关键字 > 比如说 user模块的controll中的go源代码 > 搜索的时候可以使用多个快捷键 =》 user controll go > 就可以准确的找到源代码了
    3. 打开项目列表 ( ctrl-cmd-p ) > 然后就会显示出来一个项目列表回车就可以打开项目。
  3. 总结: > 感觉这个插件的treeview用途的确不是很大,因为正常项目的项目文件会很多。 > 不过是快速打开项目(文件夹)是非常方便的,配合快速打开文件还是相当爽的。

  4. 按快捷键之后的效果展示: 

    自动语法检,自动补全

  5. 插件go-plus,autocomplete-plus(dependance),gocode 使用 apm install 安装就可以了。速度还可以。

  6. 使用细节 在保存的时候

    1. 会自动补上imports
    2. 会自动整理代码 > 比如说 a:=5 会变成 a := 5 两个空行自动变成一个空格
    3. lint自动检查语法错误(go build 的错误都会显示出来)
    4. vet会自动检查语法拼写建议 > 函数,结构体 会提示补上注释。 比如说会提示你函数前面需要加入godoc类型的注释: // functionname 注释的第一行需要使用双斜杠注释+空格+函数名+空格+简短的函数功能说明。
  7. 使用细节: 在编辑的时候

    1. go-plus会配合autocomplete-plus会自动补全包名字(tab补全,回车不行,这个真心舒服)
    2. 包名.之后输入方法名开头几个字母会给出补全建议。
  8. 安装之后的演示(类似go-plus官方演示) 

  9. gocode 插件自动补全演示

    1. 这个插件继承自autocomplete,因为年久失修。api用的是老版本,所以一直都会出现api警告。(我是实用主义,视而不见)
    2. gocode如果找不到就进入代码找到文件autocomplete-view.coffee 中105行写成绝对路径就肯定没有问题了。
    3. 绑定快捷键,因为这个插件没有绑定快捷键的文件(keymap)所以需要在keymap.cson下自己手动绑定配置如下:json '.active.pane': 'ctrl-;': 'gocode:toggle'
    4. 效果演示

      查找定义

  10. 插件 godef

  11. 使用细节: 光标在目标代码上的时候,使用快捷键ctrl-k跳转到目标代码的定义代码上。

灵活的运行

  1. 安装插件atom-runner
  2. 修改源代码中的go run运行为go: 'sh [绝对路径到你的全局run脚上] '+atom.project.rootDirectories[0].path
  3. 脚本的 $1 会是你项目运行的路径。然后你的所有项目都可以添加一个run.sh 来指定一个构建运行的方案。
  4. 做完之后不管当前在查看什么文件都可以运行整个项目。
  5. 其他语言也可以这样做。毕竟单个文件的项目不是很常见(开发的时候)

总结

  1. 我这里只是总结了我用的所有的golang相关的atom插件。
  2. 要相信golang使用编辑器就够用的事实了。因为 go tool 实在是太好用了。

我的key map

  1. cmd-d duplicate line
  2. cmd-w 关闭标签
  3. cmd-r 文件内的标签列表
  4. cmd-e 使用选中的内容做搜索的pattern
  5. shift-cmd-f project内部搜索,这个非常实用。command 配置(keymap.cson) >json '.platform-darwin atom-text-editor': 'shift-cmd-D': 'find-and-replace:select-next'

感谢golang

  1. golang能有如此的开发体验,以及在如此低的版本中表现的这么好。实在是大牛赐予我们最好的礼物了。
  2. golang的有如此好的开发工具加上各种扩展性比较强的编辑器(vim,emacs,sublime,atom等)开发体验的确是非常好的。

Golang 环境配置建议(Atom)的更多相关文章

  1. CentOS6.5上golang环境配置

    CentOS6.5上golang环境配置 一.下载和解压go环境包 >>cd /usr/local/src/ >>wget -c http://golangtc.com/sta ...

  2. IntelliJ IDEA开发golang环境配置

    IntelliJ IDEA开发golang环境配置 首先把GO安装好...(自行安装,附上一篇我之前写的MAC安装GO) 安装IntelliJ IDEA,下载地址: https://www.jetbr ...

  3. Golang环境配置

    下载 下载地址 Go官网下载地址:https://golang.org/dl/ Go官方镜像站(推荐):https://golang.google.cn/dl/ 版本选择 安装 Windows安装 示 ...

  4. ubuntu下golang环境配置

    安装go 可以到Golang中国下载go的安装包 解压安装包tar -C /usr/local -xzf <安装包> 添加环境变量`export PATH=$PATH:/usr/local ...

  5. nginx 和 tomcat 生产环境配置 建议和方法

    参考  以下内容: http://blog.csdn.net/lifetragedy/article/details/7708724 一. nginx参数调优 worker_processes 3; ...

  6. golang 环境配置 over centos7

    基本编程环境 下载go1.8压缩包,解压后存放至目录~/work/下. 编辑~/.bashrc,添加如下三行在尾部 执行 source ~/.bashrc  配置vim + go  下载Vundle ...

  7. Golang环境配置Centos

      1.下载go程序包( go1.7rc1.linux-amd64.tar.gz)(http://www.golangtc.com/static/go/1.7rc1/go1.7rc1.linux-am ...

  8. 史上最全Windows版本搭建安装React Native环境配置

    史上最全Windows版本搭建安装React Native环境配置 配置过React Native 环境的都知道,在Windows React Native环境配置有很多坑要跳,为了帮助新手快速无误的 ...

  9. React Native环境配置

    React Native环境配置 史上最全Windows版本搭建安装React Native环境配置 配置过React Native 环境的都知道,在Windows React Native环境配置有 ...

随机推荐

  1. 【一天一道LeetCode】#125. Valid Palindrome

    一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Given a ...

  2. Java-IO之FilterInputStream和FilterOuptStream

    FilterInputStream的作用是用来封装其他的输入流,并为它们提供了额外的功能,它的常用的子类有BufferedInputStream和DataInputStream.FilterOutpu ...

  3. Cocos2D:塔防游戏制作之旅(十六)

    编译运行你的app,放置一些炮塔在你的地图上吧!你将看到炮塔在敌人移动如攻击范围时如何立即开始攻击,并且敌人的血条将随着攻击不断减少知道它们被人道毁灭!胜利即将来临了! 哦!Okay,这里只有少数细节 ...

  4. Cocos2D:塔防游戏制作之旅(十一)

    是时候放一些坏家伙来搅合一下了! 打开HelloWorldLayer.h并且添加以下代码: // Add these instance variables int wave; CCLabelBMFon ...

  5. Gradle脚本打包so库

    要让引用的第三方的so库被打包进去,只需要把相关的armeabi文件夹放在libs下面,然后在builld.gradle脚本中加上这一句: sourceSets{ main { jniLibs.src ...

  6. 9、Libgdx的输入处理

    (官网:www.libgdx.cn) 不同的平台有着不同的输入方式.桌面用户可以通过键盘和鼠标与应用进行交互,基于浏览器的游戏也是这样.在Android中,鼠标被触摸屏所替代,通常没有实体键盘.And ...

  7. 第三方Charts绘制图表四种形式:饼状图,雷达图,柱状图,直线图

    对于第三方框架Charts(Swift版本,在OC项目中需要添加桥接头文件),首先要解决在项目中集成的问题,集成步骤: 一.下载Charts框架 下载地址:https://github.com/dan ...

  8. hadoop环境配置过程中可能遇到问题的解决方案

    Failed to set setXIncludeAware(true) for parser 遇到此问题一般是jar包冲突的问题.一种情况是我们向java的lib目录添加我们自己的jar包导致had ...

  9. Java之美[从菜鸟到高手演变]之设计模式三

    本章是关于设计模式的最后一讲,会讲到第三种设计模式--行为型模式,共11种:策略模式.模板方法模式.观察者模式.迭代子模式.责任链模式.命令模式.备忘录模式.状态模式.访问者模式.中介者模式.解释器模 ...

  10. 内存数据网格hazelcast的一些机制原理

    hazelcast作为一个内存数据网格工具,还算比较优秀,听说有Apache顶级项目使用它,值得研究下,使用文档可以直接看官方文档,但机制原理相关的资料基本没有,本人硬撸源码写的一些东西,跟大家分享一 ...