作为一个理想的开发工具,可以设定对其的期望,具体如下:

   ·支持语法高亮的文本编辑

   ·支持Unicode编码,便于在代码中直接使用非英文字符串

   ·支持工程构建

   ·直接执行构建结果

   ·单元测试

   ·支持执行性能测试

   ·支持代码调试,包括断点和逐行调试等

   ·支持文档提取和展示

   ·集成语言文档

   ·开源,或者免费

   ·最好能支持代码自动完成


1.gedit

1.1语法高亮

   一般支持自定义语法高亮的文本编辑器都是通过一个语法定义文件来设定语法高亮规则的,gedit也是如此。Go语言社区有人贡献了可用于gedit的Go语言语法高亮文件,我们可以通过以下链接下载:

Golang 开发工具    下载后,该文件应该放置到目录/usr/share/gtksourceview-2.0/language-specs下。不过如果你用的是Ubuntu比较新的版本,比如v11.01,那么你可能会发现gedit默认已经支持Go语言的语法高亮。读者可以在gedit中查看“View”→“Highlight Mode”→“Sources”菜单项里是否包含名为“Go”的菜单项。


1.2编译环境

    在配置构建相关命令之前,我们需要确认gedit是否已经安装了名为External Tools的插件。单击“View”→“Preference”菜单项,弹出选项对话框,该对话框的最后一个选项页就是Plugins。插件的安装比较简单,只要在插件列表中找到External Tools并确认该项已经被勾选即可。

   接下来我们配置几个常用的工程构建命令:

     构建当前工程(Go Build)

     编译当前打开的Go文件(Go Compile)

     运行单元测试(Go Test)

     安装(Go Install)

   要添加命令,可以单击“Tools”→“Manage External Tools…”菜单项,打开管理对话框,然后在该对话框中添加即可。

    我们需要添加的命令主要如下:

Golang 开发工具

Golang 开发工具

    可以很容易看出来,每个命令的内容其实就是一个shell脚本,读者可以根据自己的需求进行位意的修改和扩展。

    添加完命令后,读者可以在“Tool”→“External Tools”菜单中看到刚刚添加的所有命令。每次单击菜单项来做构建也不是非常方便,因此建议在添加命令时顺便设置一下快捷方式。


2.Vim

   Go语言安装包中已经包含了对Vim的环境支持。要将Vim配置为适合作为Go语言的开发环境,我们只需要按$GOROOT/misc/vim中的说明文档做以下设置即可。

   创建一个shell脚本govim.sh,该脚本的内容如下:

       mkdir -p $HOME/.vim/ftdetect

       mkdir -p $HOME/.vim/syntax

       mkdir -p $HOME/.vim/autoload/go

       ln -s $GOROOT/misc/vim/ftdetect/gofiletype.vim $HOME/.vim/ftdetect/

       ln -s $GOROOT/misc/vim/syntax/go.vim $HOME/.vim/syntax

       ln -s $GOROOT/misc/vim/autoload/go/complete.vim $HOME/.vim/autoload/go

       echo "syntax on" >> $HOME/.vimrc

   在执行该脚本之前,先确认GOROOT环境变量是否正确设置并已经起作用,具体代码如下:

      $ echo $GOROOT

     /usr/local/go

   如果上面这个命令的输出为空,则表示GOROOT尚未正确设置,请保证GOROOT环境变量正确设置后再执行上面的govim.sh脚本。

现在可以执行这个脚本了,该脚本只需要执行一次。执行成功的话,在$HOME目录下将会创建一个.vim目录。之后再用Vim打开一个go文件,读者应该就可以看到针对Go语言的语法高亮效果了。

   Vim还可以配合gocode支持输入提示功能。接下来我们简单地配置一下。

   首先获取gocode:

      $ go get -u github.com/nsf/gocode

   这个命令会下载gocode相应内容到Go的安装目录去(比如/usr/local/go),因此需要保证有目录的写权限。然后开始配置gocode:

      $ cd /usr/local/go/src/pkg/github.com/nsf/gocode/

      $ cd vim

      $ ./update.bash

   配置就是这么简单。现在使用以下Vim的语法提示效果。用Vim创建一个新的Go文件(比如命名为auto.go),输入以下内容:

      package main

      import "fmt"

      func main() {

      fmt.Print

   请将光标停在fmt.Print后面,然后按组合键Ctrl+X+O(三个键同时按住后放开),你会看到fmt包里的所有3个以Print开头的全局函数都被列了出来: Print、 Printf和Println。之后就可以用上下方向键选取,按回车键即可完成输入,非常方便。

   gocode其实是一个独立地提供输入提示的服务器程序,并非专为Vim打造。比如Emacs也可以很容易地添加基于gocode的Go语言输入提示功能。大家可以查看gocode的Github主页上的提示。


3.Eclipse

   Eclipse 是一个成熟的IDE平台,目前已经可以支持大部分流行的语言,包括 Java、 C++等。 Goclipse是Eclipse的插件,用于支持Golang。从整体上看,安装Goclipse插件的Eclipse是目前最优秀的Go语言开发环境,可以实现语法高亮、成员联想、断点调试,基本上满足了所有的需求。

   接下来我们来一步步配置Eclipse,将其配置为适合Go语言开发的环境。

   (1) 安装JDK 1.6及以上版本。在目前流行的Linux发行版中,都会预装OpenJDK,虽然功能与Oracle的官方JDK 基本一致,但是建议先删除OpenJDK,具体操作方法如下(此操作在安装官方JDK之前进行):

    rpm -qa | grep java

    rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.7.b09.el5

    在Windows平台上,不需要此步骤。只简单地安装官方JDK即可。

    (2) 安装Eclipse 3.6及以上版本。无论是在Linux还是Windows平台上,一般只需要解压到一个指定的位置即可,不需要特别的配置。

    (3) 安装Go编译器,并配置好GOROOT、 GOBIN等环境变量。

    (4)打开Eclipse,通过如下图所示的“Install New Software”菜单,打开安装软件对话框。

Golang 开发工具


   (5) 如下图所示,在打开的安装软件对话框的“Work with”文本框中,输入以下URL:https://goclipse.googlecode.com/svn

/trunk/goclipse-update-site/,并按回车。

Golang 开发工具

    (6) 根据Eclipse的提示,不断单击“Next”按钮即可。此过程需要一定时间的等待,如果中途出错,可以多次重试,直到成功为止。

    在整个过程中,会因为网络不稳定(网络速度慢、同时开启下载软件、所需URL被防火墙阻止等因素)或者操作系统版本的缘故,下载缓慢或者失败,只要重复上述步骤即可。

    (7) 重启Eclipse,并通过菜单项“Window”→“Preferences” →“Go”打开Go语言的配置选项框,配置Go编译器的路径和GDB的路径。配置完成后,我们来看看执行效果,编辑状态的界面如下图所示。

Golang 开发工具

   调试界面如下图所示

Golang 开发工具

   因为Go编译器生成的调试信息为DWARFv3格式,因此需要确认所安装的GDB版本必须高于V7.1。

4.Notepad++

4.1 语法高亮

   在Go语言的安装目录下,已经自带了针对Notepad++的语法高亮配置文件。我们可以在/usr/local/go/misc/notepadplus目录下找到这些配置文件。只需按照对应的README文档进行以下几个步骤的操作。

   (1) 将userDefineLang.xml的内容合并到Notepad++配置目录下的userDefineLang.xml文件。如果安装目录下不存在这个文件,则直接复制该文件即可。 Notepad++的配置目录通常位于%HOME%\AppData\Roaming\Notepad++。

   (2) 将go.xml复制到安装目录的plugins\APIs目录下。

   (3) 重新启动Notepad++。

   %HOME% 是指你的 HOME 目录,如果不知道你自己的 HOME 目录在哪里,在命令行中执行echo %HOME% 即可看到。

4.2编译环境

   我们推荐Notepad++用户再安装另外两个Notepad++的插件——NppExec和Explorer,其中NppExec用于支持自定义命令,而Explorer则可以避免在Notepad++和资源管理器之间频繁切换,在Notepad++中即可完成目录结构和文件的操作。 Notepad++的插件安装非常简单,只需在插件对话框中找到这两个插件并选中即可。

   1. 配置NppExec插件

   在安装好NppExec插件后,我们可以通过以下几个简单的步骤将NppExec配置为适合用于构建Go程序的环境。

   1) 通过菜单Plugins→NppExec进入NppExec的配置对话框,然后勾选“Show Console Dialog”、“No internal messages”、

“Save all files on execute”和“Follow $(CURRENT_DIRECTORY)”这4个选项。

   2) 在Exec对话框中分别键入go build、 go clean & go install和go test,并保存为build、 install、和test脚本。此时已经可以测试Go工程的build是否能够正常进行,以下步骤为可选操作。

   3) 在Advanced Options中添加3条正对以上脚本的命令,分别为: Build current project、Install current project和Test current project。

   4) 通过菜单“Settings”→“Shortcut Mapper”→“Plugin Commands”为这3条命令分配快捷键。我喜欢用F7、 F8和F9,不过F7和F8已经被其他功能占用,如果希望使用这两个快捷键,我们需要先清除这些快捷键的默认配置。

   5) 通过“Console Output Filters”对话框的“Highlight”选项卡美化程序运行结果消息。添加以下内容高亮规则。

      a) 筛选规则: *PASS* ;显示格式:蓝色粗体(*PASS*为填入到mask框中的内容,蓝色和粗体则通过在Blue中填入0xff和勾选B来完成)。

      b) 筛选规则: %FILE%:%LINE%: *;显示格式:红色下划线(这一条很有价值,因为可以让你双击消息定位到相应的代码行。可惜还不支持正则表达式,否则就真正强大了)。

      c) 筛选规则: gotest: parse error: %FILE%:%LINE%:*;显示格式:红色。

      d) 筛选规则: *FAIL*;显示格式:红色粗体。

2.配置Explorer插件

    通过菜单“Plugins”→“Explorer”→“Explorer”打开目录树窗格,并按自己的喜好配置Explorer的显示选项即可。因为Go语言已经抛弃了专门的工程文件,因此管理工程就是管理目录结构,不再需要复杂的配置工具。 Explorer插件就足以满足我们的需求。


5.LiteIDE

     LiteIDE是国内第一款,也是世界上第一款专门为Go语言开发的集成开发环境(IDE),目前支持Windows、 Linux、 iOS三个平台。它的安装和使用都很简单方便,是初学者较好的选择,支持语法高亮、集成构建和代码调试。虽然因为专业的IDE与LiteIDE相比,需要在很多细节上继续打磨,但仍不失为开发Go语言程序的首选之一。

    在部署上,只需要下载安装包安装,并配置好环境即可。下载地址为http://code.google.com/p/golangide/downloads/list。安装过程非常简单,因此不再赘述。下面我们来看看运行时的界面截图,如下图所示:

Golang 开发工具

   最新发布的版本已经融入Go 1的全部新特性,尤其是在工程管理上,与Go工具兼容,可以直接根据GOPATH导入工程。同时,也支持关键字自动完成。

   x11版在IDE的环境配置上,是基于XML的。例如,你想把代码关键字由粗体变为正常,需要通过“Option”→“LiteEditor”→

“ColorStyle Scheme”菜单来打开和编辑default.xml。

   原文是:

Golang 开发工具

    加入关键字定义后,该文件更新为下面的形式:

Golang 开发工具

保存该文件即可看到效果。

    在根据GOPATH完成工程导入之后, GOPATH中的工程会显示在IDE左边的“项目”窗口中。这里有个关键的步骤,那就是我们需要设置“当前选中的工程”,以让IDE环境能够识别需要编译和调试的工程。具体操作方法是双击工程名字或者右击工程目录,然后单击菜单中的“设置当前项目”,如下图所示。完成设置后,当前项目会以蓝色字体显示在“工程”对话框的顶部。

Golang 开发工具