http://www.cnblogs.com/qgymje/p/3912259.html
 
这篇原来是给公司里使用go开发的交流用的,主要是工具的安装,用markdown写的,发布了内部gitlab上,仓促发布到blog上面,也没改啥格式,现在整理一下,然后增加一点说明

基础开发工具

sublime text2下载

为何使用sublime text2?相信很多喜欢轻量级工具,开大量chrome网页以及使用大量小而精软件的开发者都喜欢editor吧,当然最主要是vim mode!

安装package control

打开后,按ctrl + ~打开命令行,或者在view->show console,复制如下代码,执行

import urllib2,os,hashlib; h = '7183a2d3e96f11eeadd761d777e62404' + 'e330c659d4bb41d3bdf022e94cab3cd0'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); os.makedirs( ipp ) if not os.path.exists(ipp) else None; urllib2.install_opener( urllib2.build_opener( urllib2.ProxyHandler()) ); by = urllib2.urlopen( 'http://sublime.wbond.net/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); open( os.path.join( ipp, pf), 'wb' ).write(by) if dh == h else None; print('Error validating download (got %s instead of %s), please try manual install' % (dh, h) if dh != h else 'Please restart Sublime Text to finish installation')

安装gosublime,配置

作为在st上开发go的基础,必装,然后在settings-user里写上如下配置,设定一个golang的workspace,这样就可以自动提示import包里的方法了

{
"env": {
"GOPATH": "~/workspace:$GS_GOPATH"
},
"autocomplete_builtins": true,
"autocomplete_suggest_imports": true
}

安装golint

golint用于检测语法问题,类似于jslint,但是它提示最多的无非是变量名不要用下划线啊,然后给出一个建议的变量名,要写注释啊...当然,写了注释之后,使用godoc -http=:8081 (端口随意)就可以在浏览器里看到刚才辛苦写的注释已经生成了文档

go get github.com/golang/lint
golint filename1 filepath1//可以使用多个参数指定目录或者文件

可将其部署到gosublime或者fswatch中去

安装goimporter

这是一个比gofmt更厉害一点的工具,它会自动修改import里的包,还是十分实用的,不会因为import里的东西没用,或者用了某一个package而没有import导致的错误提示,这是节省时间的好东西,积小成多

go get code.google.com/p/go.tools/cmd/goimports

编译好之后,设置一个ln -s到$GOBIN目录(或者复制过去),并且将gosublime的user-setting添加一行,好东西啊~

"fmt_cmd": ["goimports"]

注:ln -s 需要绝对路径

fswatch热编译

go get github.com/codeskyblue/fswatch

同样build好之后连接到$GOBIN下,或者/usr/bin之类目录,windows用户那建议放到$GOBIN下,编译的时候直接go build,不要对单独的fswatch.go编译,因为有多个package main文件

在需要目录执行fswatch,自动生成.fswatch.json
然后在command里写需要执行的命令,参考如下

{
"paths": [
"."
],
"depth": 2,
"exclude": [],
"include": [
"\\.(go|py|php|java|cpp|h|rb)$"
],
"command": [
"bash",
"-c",
"pgrep server | xargs kill && golint ./ && go build server.go && ./server"
],
"env": {
"POWERD_BY": "github.com/codeskyblue/fswatch"
},
"kill-signal": "KILL"
}

注意:command是自己写的,因为这个工具在我的Mac不能杀掉启动的进程,因此就手动加了kill的命令,具体如何修复还在研究源代码中~~

将golint并入到监控目录中去,方便修改内容

supervisor

[program:vehiclestat]
command=~/workspace/yourprogram
autostart = true
autorestart = true
startsecs = 5
user = root
redirect_stderr = true
stdout_logfile = /var/log/supervisord/yourprogram.log

比较实用的监控进程的工具,相比较用nohup ./xxx &还是比较放心的

其它

设置当前目录为$GOPATH

alias gopath='export GOPATH=`pwd` && echo $GOPATH'

尤其适合多个不同目录下的go项目,在每个项目下运行一次gopath,就设置好了当前的gopath,十分方便

总结:

不知为何,我前一版本居然被移出首页,说是要原创,这东西就是我原创的啊,虽然工具都是别人的,但整合这些东西也是花了一定精力的啊!!!

虽然有idea + goplugin比较好的方案,但还是比较喜欢手动配置,这样整一套下来,go的开发环境比较完整了,还有一个蛋疼的就是调试,难道调度还要不停地log.Println()吗??

造完美的go开发环境的更多相关文章

  1. VS Code打造一个完美的Springboot开发环境

    对于使用Springboot环境开发java应用,首选IDE还是IntelliJ IDEA(2018),当前版本已经很流畅了,现在开发用的电脑配置基本都能够很6的跑起来,IDEA用起来真心爽啊,比Ec ...

  2. 打造完美的go开发环境

    这篇原来是给公司里使用go开发的交流用的,主要是工具的安装,用markdown写的,发布了内部gitlab上,仓促发布到blog上面,也没改啥格式,现在整理一下,然后增加一点说明 基础开发工具 sub ...

  3. 揭秘史上最完美一步到位的搭建Andoriod开发环境

    Windows环境下Android开发环境搭建虽然不难而且网上资料众多,但是众多资料如出一折 忽略了很多细节,最终还是没能达到满意效果. 基本步骤如下:JDK安装.环境变量配置.Eclipse下载.A ...

  4. 【转】Eclipse和PyDev搭建完美Python开发环境(Ubuntu篇)

    原文网址:http://www.cnblogs.com/Realh/archive/2010/10/10/1847251.html 前两天在Windows下成功地搭好了一个Python开发环境,这次转 ...

  5. 虚拟机+桥接模式+Host-only模式 搭建完美的Windows下Linux开发环境

    相信有很多鞋童和我一个样是一枚Linux码农(我现在还是嵌入式方向). 做Linux开发势必需要一个Linux环境, 大多数开发者会首先选择一个Linux发行版, 其中Ubuntu LTS版本应该是选 ...

  6. 第一篇:Win10系统搭建Python+Django+Nginx+MySQL 开发环境详解(完美版)

    Win10+Python+Django+Nginx+MySQL 开发环境搭建详解 PaulTsao 说明:本文由作者原创,仅供内部参考学习与交流,转载引用请注明出处,用于商业目的请联系作者本人. Wi ...

  7. Windows+Linux----打造和谐的开发环境

    其实Windows和Linux并非水火不容,相反,我觉得,如果将二者结合起来,取长补短,便可打造一个华丽.实用的开发环境. 吾以为,不会用linux的人,不能称为一个程序猿,但是一味觉得Linux很吊 ...

  8. Eclipse和PyDev搭建完美Python开发环境(Windows篇)(转)

      摘要:本文讲解了用Eclipse和PyDev搭建Python的开发环境. 十一长假在家闲着没事儿,准备花点时间学习一下Python. 今儿花了一个下午搭建Python的开发环境,不禁感叹————开 ...

  9. 2018 完美搭建VS Code 的JAVA开发环境并解决print乱码问题

    出自微软的Visual Studio Code 并不是一个 IDE,它是个有理想,有前途的编辑器,通过相应语言的插件,可以将其包装成一个 轻量级的功能完善的IDE. 自从遇见了她,真的是对她一见钟情不 ...

随机推荐

  1. Customer IEnuramble Extension

    public static class IEnurambleExtension { public static IEnumerable<TSource> DistinctBy<TSo ...

  2. CentOS下Red5安装

    Red5介绍 Red5是一个采用Java开发开源的Flash流媒体服务器.它支持:把音频(MP3)和视频(FLV)转换成播放流: 录制客户端播放流(只支持FLV):共享对象:现场直播流发布:远程调用. ...

  3. Kafka 分区备份实战

    1.概述 在 Kafka 集群中,我们可以对每个 Topic 进行一个或是多个分区,并为该 Topic 指定备份数.这部分元数据信息都是存放在 Zookeeper 上,我们可以使用 zkCli 客户端 ...

  4. JavaWeb(李兴华著)开发笔记

    1.Java语法-基础 环境变量-JAVA_HOME, PATH, ClassPath 变量名 作用 举例 JAVA_HOME 指向JDK目录 C:\Program Files\Java\jdk1.7 ...

  5. PlayFramework 1.2.x 在Controller 中识别JSON提交

    链接 http://stackoverflow.com/questions/6132892/consuming-json-in-play-framework-controller @Global pu ...

  6. [LeetCode] Range Sum Query - Immutable

    The idea is fairly straightforward: create an array accu that stores the accumulated sum fornums suc ...

  7. javascript 无语的==

    今天面试不小心掉进坑了,大公司特别喜欢考javascript,而且专门挑很tricky的case. javascipt的==简直就是黑魔法,以前偷懒总是用,感觉也没有问题,可是准备面试就需要有寻根问底 ...

  8. .NET面试必备(整理)

    1.简述 private. protected. public. internal 修饰符的访问权限. private : 私有成员, 在类的内部才可以访问.public : 公共成员,完全公开,没有 ...

  9. annotation:@Override出现The method of type must override asuperclass解决方案

    原因追踪及解决办法: 1. 查阅资料发现说在jdk1.5下要使用@Override这个annotation必须保证被标注的方法来源于class而不是interface. 2. 即使自己的jdk是1.6 ...

  10. Qt5 从头学(1)-- 环境

    对我来说MFC太过麻烦了,同样是桌面开发工具,Qt就完全不一样了.Qt使用C++语言可以轻松实现"一次编写,到处编译"的跨平台性能,并且可以做出很多炫酷的界面效果.目前支持几乎所有 ...