Go语言环境配置 Sublime Text + GoSublime+ gocode + MarGo组合

买来《Go Web编程》一书学习Go语言,结果按照书中的步骤搭建,发现部分站点已经失效了,查了网上好多教程也没有人能够说清楚如何搭建。还是自己动手找方法吧,经过自己的不懈努力终于搭建好了。ps:没有google的日子太难受了,查资料各种不方便,平时基本不*,所以。。。。。。

1.下载安装go,今天安装go的时候发现go官网打不开,在网上找各种go下载地址无果,不过还是在不经意间发现了一个下载地址,希望你看到这篇文章时还能下载。我的机器是64位windows8,找个可用的msi太费劲了。附地址 :https://code.google.com/p/go/downloads/list?q=OpSys-Windows+Type%3DInstaller 。我电脑就更改了google的hosts,如果你不能访问这个地址的话,建议你也做一下。

下载之后的安装很简单,next到头就好了,安装完成之后,打开终端,输入go回车,能看到安装成功的提示就说明安装成功了。

2.设置GOPATH,找个自己想放置go项目的文件夹,添加一个GOPATH环境变量并指向这个文件夹。如果GOPATH=c:\mygo。一般来说在GOPATH下面创建三个子目录,src,bin,pkg。

3.准备工作完成之后,开始搭建Sublime Text开发go语言的环境。

  a.下载安装sublime text之后,安装Package Control(自行找网上教程,之后如何安装插件的也不赘述)。

  b.安装gocode和MarGo。在此之前请确认是否安装了git。如果没有那么请按照如下步骤安装git功能(不是全部功能,仅能完成本次环境的搭建,关于git的详细介绍请参照git官网介绍)。如果你已经是git用户,下面步骤跳过,直接进行d步骤。

  c.msysgit是Git for Windows版,其Home Page为:http://msysgit.github.io/ 点击页面中“Download”进入下载列表。下载完毕,双击开始安装:1、除了AdvancedXXX选项,其余全选。2、选择“Use Git Bash only”。3、选择“Checkout as-is,commit as-is”。4、配置git环境变量,在Path后面追加(复制下面代码改下git的安装路径就可以了);D:\Program Files\Git\bin;D:\Program Files\Git\libexec\git-core;

  d.打开终端运行如下命令安装gocode和MarGo。

  go get github.com/nsf/gocode   go get github.com/DisposaBoy/MarGo(该工具已经被作者清空了,大部分人在这一步就被卡住了)  如果你也是在第二步卡住了,那么可以按照我的方法进行替换。   使用 go get github.com/slene/margo这个代替。不过这个工具需要自己稍微改动一下。执行完这个步骤,你可以重启下sublimetext试试,下面会输出安装错误信息,会提示你找不到一个叫 gosublime.margo_***.exe的文件。这个时候,你可以去你的GOPATH下的bin目录下找到margo.exe的文件,你可以将这个文件改名为刚才找不到的那个文件名。然后将其复制到 C:\Users\**\AppData\Roaming\Sublime Text 3\Packages\User\GoSublime\windows-x64\bin下面就可以了。
e.安装sublimetext插件:GoSublime、SidebarEnhancements和Go Buid。 修改GoSublime配置:在 Preferences菜单下,找到Package Settings,然后找到 GoSublime,再往下找到 Settings - Default。再打开的文件中,添加如下配置,并保存:"env": {"path":"c:/go/bin;" },
好了,然后就可以写go代码进行验证了。
如果使用ctrl+B快捷键编译go不能使用,那么你可以自己新建一个build system。具体执行:Tools-Build system-new build system,然后替换内容为:

{ "cmd": ["go", "run", "$file_name"], "file_regex": "^[ ]*File \"(…*?)\", line ([0-9]*)", "working_dir": "$file_path", "selector": "source.go" }

就可以了,执行编译时选择这个build system就可以了。

 
上一篇:2015-01-16 .Net 中级软件工程师 笔试题


下一篇:SQLServer获取临时表所有列名或是否存在指定列名的方法