diff --git a/zh/01.4.md b/zh/01.4.md index 8e1e6b38..cc291d14 100644 --- a/zh/01.4.md +++ b/zh/01.4.md @@ -1,95 +1,112 @@ # 1.4 Go开发工具 -本节我将介绍几个开发工具,它们都具有自动化提示,自动化fmt功能。因为它们都是跨平台的,所以安装步骤之类的都是通用的。 +本节我将介绍几个开发工具,它们都具有自动化补全,自动化 fmt 和检查等功能。因为它们都是跨平台的,所以安装步骤之类的都是通用的。 -## LiteIDE +## Visual Studio Code - LiteIDE是一款专门为Go语言开发的跨平台轻量级集成开发环境(IDE),由visualfc编写。 +Vscode 是微软基于 Electron 和 Web 技术构建的开源编辑器, 是一款非常强大的编辑器。 +而且目前 vscode-go 已升级为 Go 官方维护的工具, 也是当前免费开源的首选开发工具. - ![](images/1.4.liteide.png?raw=true) +开源地址: https://github.com/Microsoft/vscode -图1.4 LiteIDE主界面 +1、安装Visual Studio Code 最新版 -**LiteIDE主要特点:** +官方网站:https://code.visualstudio.com +下载 Visual Studio Code 最新版,安装过程略。 -* 支持主流操作系统 - * Windows - * Linux - * MacOS X -* Go编译环境管理和切换 - * 管理和切换多个Go编译环境 - * 支持Go语言交叉编译 -* 与Go标准一致的项目管理方式 - * 基于GOPATH的包浏览器 - * 基于GOPATH的编译系统 - * 基于GOPATH的Api文档检索 -* Go语言的编辑支持 - * 类浏览器和大纲显示 - * Gocode(代码自动完成工具)的完美支持 - * Go语言文档查看和Api快速检索 - * 代码表达式信息显示`F1` - * 源代码定义跳转支持`F2` - * Gdb断点和调试支持 - * gofmt自动格式化支持 -* 其他特征 - * 支持多国语言界面显示 - * 完全插件体系结构 - * 支持编辑器配色方案 - * 基于Kate的语法显示支持 - * 基于全文的单词自动完成 - * 支持键盘快捷键绑定方案 - * Markdown文档编辑支持 - * 实时预览和同步显示 - * 自定义CSS显示 - * 可导出HTML和PDF文档 - * 批量转换/合并为HTML/PDF文档 +2、安装 Go 插件 -**LiteIDE安装配置** +点击右边的 Extensions/扩展 图标 +搜索 `Go` 插件 +在插件列表中,选择 Go,进行安装,安装之后,系统会提示重启 Visual Studio Code。 -* LiteIDE安装 - * 下载地址 - * 源码地址 - - 首先安装好Go语言环境,然后根据操作系统下载LiteIDE对应的压缩文件直接解压即可使用。 +写一个 Hello World ,然后运行: -* 编译环境设置 +hello.go +```Go +package main + +import "fmt" + +func main() { + fmt.Printf("Hello word") +} +``` - 根据自身系统要求切换和配置LiteIDE当前使用的环境变量。 - - 以Windows操作系统,64位Go语言为例, - 工具栏的环境配置中选择win64,点`编辑环境`,进入LiteIDE编辑win64.env文件 - - GOROOT=c:\go - GOBIN= - GOARCH=amd64 - GOOS=windows - CGO_ENABLED=1 - - PATH=%GOBIN%;%GOROOT%\bin;%PATH% - 。。。 - - 将其中的`GOROOT=c:\go`修改为当前Go安装路径,存盘即可,如果有MinGW64,可以将`c:\MinGW64\bin`加入PATH中以便go调用gcc支持CGO编译。 +保存的时候, vscode 右下角会提示,需要安装依赖包, 点击 Install All ( 建议提前设好代理, 参考 Go Module 章节 ) +另外建议使用 golint 或者 golangci-lint 等工具, 可以写出更优雅的代码; 也可以把自动保存功能开启, 开启方法为:选择菜单 File,点击 Auto save。 - 以Linux操作系统,64位Go语言为例, - 工具栏的环境配置中选择linux64,点`编辑环境`,进入LiteIDE编辑linux64.env文件 - - GOROOT=$HOME/go - GOBIN= - GOARCH=amd64 - GOOS=linux - CGO_ENABLED=1 - - PATH=$GOBIN:$GOROOT/bin:$PATH - 。。。 - - 将其中的`GOROOT=$HOME/go`修改为当前Go安装路径,存盘即可。 +VSCode 代码设置可用于 Go 扩展。这些都可以在用户的喜好来设置或工作区设置(.vscode/settings.json)。 -* GOPATH设置 +VSCode 还有一些高级配置, 打开首选项-用户设置, 一般可以通过图形界面设置 +也可以通过 settings.json 进行更多高级配置: + +```Go + "go.buildOnSave": "package", // 'workspace', 'package', or 'off'. + "go.lintOnSave": "workspace", // 'workspace', 'package', or 'off'. + "go.vetOnSave": "workspace", // 'workspace', 'package', or 'off'. + "go.buildFlags": [], + "go.lintFlags": [], + "go.vetFlags": [], + "go.coverOnSave": false, + "go.useCodeSnippetsOnFunctionSuggest": false, + "go.formatOnSave": true, + // + "go.formatTool": "goimports", // goreturns + "go.lintTool": "golangci-lint", + "go.useLanguageServer": true, + // + "go.goroot": "", // 你的 Goroot, 可选配置 + "go.gopath": "", // 你的 Gopath, go1.12 之后改用 go-mod, 可选配置 +``` + +vscode 还有一项很强大的功能就是断点调试,结合 [delve](https://github.com/derekparker/delve) 可以很好的进行 Go 代码调试 + +```Go + +go get -v -u github.com/peterh/liner github.com/derekparker/delve/cmd/dlv + +brew install go-delve/delve/delve (mac可选) + +``` + +如果有问题再来一遍: +```Go +go get -v -u github.com/peterh/liner github.com/derekparker/delve/cmd/dlv +``` + +注意:修改"dlv-cert"证书, 选择"显示简介"->"信任"->"代码签名" 修改为: 始终信任 + +打开首选项-工作区设置,配置launch.json: + +```Go +{ + "version": "0.2.0", + "configurations": [ + { + "name": "main.go", + "type": "go", + "request": "launch", + "mode": "debug", + "remotePath": "", + "port": 2345, + "host": "127.0.0.1", + "program": "${workspaceRoot}", // 工作空间路径 + "env": {}, + "args": [], + "showLog": true + } + ] +} +``` + +## GoLand + +GoLand 是 JetBrains 公司推出的 Go 语言集成开发环境,是 Idea Go 插件的强化版。GoLand 同样基于 IntelliJ 平台开发,支持 JetBrains 的插件体系。 +经过几年不断迭代更新, GoLand 目前已经是 Go 开发工具中最成熟的 IDE 之一, 而且配置相当简单. + +下载地址: https://www.jetbrains.com/go/ - Go语言的工具链使用GOPATH设置,是Go语言开发的项目路径列表,在命令行中输入(在LiteIDE中也可以`Ctrl+,`直接输入)`go help gopath`快速查看GOPATH文档。 - - 在LiteIDE中可以方便的查看和设置GOPATH。通过`菜单-查看-GOPATH`设置,可以查看系统中已存在的GOPATH列表, - 同时可根据需要添加项目目录到自定义GOPATH列表中。 ## Sublime Text @@ -103,11 +120,11 @@ - 保存的时候自动格式化代码,让您编写的代码更加美观,符合Go的标准。 - 支持项目管理 - + ![](images/1.4.sublime2.png?raw=true) - + 图1.6 sublime项目管理界面 - + - 支持语法高亮 - Sublime Text 3可免费使用,只是保存次数达到一定数量之后就会提示是否购买,点击取消继续用,和正式注册版本没有任何区别。 @@ -149,19 +166,19 @@ import urllib2,os;pf='Package Control.sublime-package';ipp=sublime.installed_pa 3. 安装 [gocode](https://github.com/nsf/gocode/) go get -u github.com/nsf/gocode - + gocode 将会安装在默认`$GOBIN` 另外建议安装gotests(生成测试代码): - + 先在sublime安装gotests插件,再运行: - + ```Go go get -u -v github.com/cweill/gotests/... ``` - + 3. 验证是否安装成功,你可以打开Sublime,打开main.go,看看语法是不是高亮了,输入`import`是不是自动化提示了,`import "fmt"`之后,输入`fmt.`是不是自动化提示有函数了。 如果已经出现这个提示,那说明你已经安装完成了,并且完成了自动提示。 @@ -170,118 +187,115 @@ go get -u -v github.com/cweill/gotests/... (针对XP)有时候在终端能运行成功,但sublime无提示或者编译解码错误,请安装sublime text3和convert utf8插件试一试 4. MacOS下已经设置了$GOROOT, $GOPATH, $GOBIN,还是没有自动提示怎么办。 - + 请在sublime中使用command + 9, 然后输入env检查$PATH, GOROOT, $GOPATH, $GOBIN等变量, 如果没有请采用下面的方法。 - + 首先建立下面的连接, 然后从Terminal中直接启动sublime - + ln -s /Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl /usr/local/bin/sublime -## Visual Studio Code +## LiteIDE -vscode是微软基于Electron和web技术构建的开源编辑器, 是一款很强大的编辑器。开源地址:https://github.com/Microsoft/vscode + LiteIDE是一款专门为Go语言开发的跨平台轻量级集成开发环境(IDE),由visualfc编写。 -1、安装Visual Studio Code 最新版 + ![](images/1.4.liteide.png?raw=true) -官方网站:https://code.visualstudio.com/ -下载Visual Studio Code 最新版,安装过程略。 +图1.4 LiteIDE主界面 -2、安装Go插件 +**LiteIDE主要特点:** -点击右边的 Extensions 图标 -搜索Go插件 -在插件列表中,选择 Go,进行安装,安装之后,系统会提示重启 Visual Studio Code。 +* 支持主流操作系统 + * Windows + * Linux + * MacOS X +* Go编译环境管理和切换 + * 管理和切换多个Go编译环境 + * 支持Go语言交叉编译 +* 与Go标准一致的项目管理方式 + * 基于GOPATH的包浏览器 + * 基于GOPATH的编译系统 + * 基于GOPATH的Api文档检索 +* Go语言的编辑支持 + * 类浏览器和大纲显示 + * Gocode(代码自动完成工具)的完美支持 + * Go语言文档查看和Api快速检索 + * 代码表达式信息显示`F1` + * 源代码定义跳转支持`F2` + * Gdb断点和调试支持 + * gofmt自动格式化支持 +* 其他特征 + * 支持多国语言界面显示 + * 完全插件体系结构 + * 支持编辑器配色方案 + * 基于Kate的语法显示支持 + * 基于全文的单词自动完成 + * 支持键盘快捷键绑定方案 + * Markdown文档编辑支持 + * 实时预览和同步显示 + * 自定义CSS显示 + * 可导出HTML和PDF文档 + * 批量转换/合并为HTML/PDF文档 -建议把自动保存功能开启。开启方法为:选择菜单 File,点击 Auto save。 +**LiteIDE安装配置** -vscode代码设置可用于Go扩展。这些都可以在用户的喜好来设置或工作区设置(.vscode/settings.json)。 +* LiteIDE安装 + * 下载地址 + * 源码地址 -打开首选项-用户设置 settings.json: + 首先安装好Go语言环境,然后根据操作系统下载LiteIDE对应的压缩文件直接解压即可使用。 -```Go +* 编译环境设置 -{ - "go.buildOnSave": true, - "go.lintOnSave": true, - "go.vetOnSave": true, - "go.buildFlags": [], - "go.lintFlags": [], - "go.vetFlags": [], - "go.coverOnSave": false, - "go.useCodeSnippetsOnFunctionSuggest": false, - "go.formatOnSave": true, - //goimports - "go.formatTool": "goreturns", - "go.goroot": "",//你的Goroot - "go.gopath": "",//你的Gopath -} -``` + 根据自身系统要求切换和配置LiteIDE当前使用的环境变量。 -接着安装依赖包支持(网络不稳定,请直接到 GitHub [Golang](https://github.com/golang) 下载再移动到相关目录): -```Go -go get -u -v github.com/nsf/gocode -go get -u -v github.com/rogpeppe/godef -go get -u -v github.com/zmb3/gogetdoc -go get -u -v github.com/golang/lint/golint -go get -u -v github.com/lukehoban/go-outline -go get -u -v sourcegraph.com/sqs/goreturns -go get -u -v golang.org/x/tools/cmd/gorename -go get -u -v github.com/tpng/gopkgs -go get -u -v github.com/newhook/go-symbols -go get -u -v golang.org/x/tools/cmd/guru -go get -u -v github.com/cweill/gotests/... -``` + 以Windows操作系统,64位Go语言为例, + 工具栏的环境配置中选择win64,点`编辑环境`,进入LiteIDE编辑win64.env文件 -vscode 还有一项很强大的功能就是断点调试,结合 [delve](https://github.com/derekparker/delve) 可以很好的进行 Go 代码调试 + GOROOT=c:\go + GOBIN= + GOARCH=amd64 + GOOS=windows + CGO_ENABLED=1 -```Go + PATH=%GOBIN%;%GOROOT%\bin;%PATH% + 。。。 -go get -v -u github.com/peterh/liner github.com/derekparker/delve/cmd/dlv + 将其中的`GOROOT=c:\go`修改为当前Go安装路径,存盘即可,如果有MinGW64,可以将`c:\MinGW64\bin`加入PATH中以便go调用gcc支持CGO编译。 -brew install go-delve/delve/delve(mac可选) + 以Linux操作系统,64位Go语言为例, + 工具栏的环境配置中选择linux64,点`编辑环境`,进入LiteIDE编辑linux64.env文件 -``` -如果有问题再来一遍: -```Go -go get -v -u github.com/peterh/liner github.com/derekparker/delve/cmd/dlv -``` -注意:修改"dlv-cert"证书, 选择"显示简介"->"信任"->"代码签名" 修改为: 始终信任 + GOROOT=$HOME/go + GOBIN= + GOARCH=amd64 + GOOS=linux + CGO_ENABLED=1 -打开首选项-工作区设置,配置launch.json: + PATH=$GOBIN:$GOROOT/bin:$PATH + 。。。 + + 将其中的`GOROOT=$HOME/go`修改为当前Go安装路径,存盘即可。 + +* GOPATH设置 + + Go语言的工具链使用GOPATH设置,是Go语言开发的项目路径列表,在命令行中输入(在LiteIDE中也可以`Ctrl+,`直接输入)`go help gopath`快速查看GOPATH文档。 + + 在LiteIDE中可以方便的查看和设置GOPATH。通过`菜单-查看-GOPATH`设置,可以查看系统中已存在的GOPATH列表, + 同时可根据需要添加项目目录到自定义GOPATH列表中。 -```Go -{ - "version": "0.2.0", - "configurations": [ - { - "name": "main.go", - "type": "go", - "request": "launch", - "mode": "debug", - "remotePath": "", - "port": 2345, - "host": "127.0.0.1", - "program": "${workspaceRoot}",//工作空间路径 - "env": {}, - "args": [], - "showLog": true - } - ] -} -``` ## Atom -Atom是GitHub基于Electron和web技术构建的开源编辑器, 是一款很漂亮强大的编辑器缺点是速度比较慢。 +Atom 是 GitHub 基于 Electron 和 Web 技术构建的开源编辑器, 是一款很漂亮强大的编辑器, 缺点是速度比较慢。 -首先要先安装下Atom,下载地址: https://atom.io/ +首先要先安装下 Atom,下载地址: https://atom.io/ -然后安装go-plus插件: +然后安装 go-plus 插件: - go-plus是Atom上面的一款开源的go语言开发环境的的插件 + go-plus 是 Atom 上面的一款开源的 go 语言开发环境的的插件 - 它需要依赖下面的go语言工具: +它需要依赖下面的go语言工具: ```Go 1.autocomplete-go :gocode的代码自动提示 2.gofmt :使用goftm,goimports,goturns @@ -297,13 +311,8 @@ Atom是GitHub基于Electron和web技术构建的开源编辑器, 是一款很漂 就会开始安装 go-plus , go-plus 插件会自动安装对应的依赖插件,如果没有安装对应的go的类库会自动运行: go get 安装。 -## GoLand - -GoLand 是 JetBrains 公司推出的 Go 语言集成开发环境,是 Idea Go 插件的强化版。GoLand 同样基于 IntelliJ 平台开发,支持 JetBrains 的插件体系。 - -下载地址: https://www.jetbrains.com/go/ - ## Vim + Vim是从vi发展出来的一个文本编辑器, 代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。 vim-go是vim上面的一款开源的go语言使用最为广泛开发环境的的插件 @@ -311,11 +320,11 @@ vim-go是vim上面的一款开源的go语言使用最为广泛开发环境的的 插件地址:[github.com/fatih/vim-go](https://github.com/fatih/vim-go) vim的插件管理主要有[Pathogen](https://github.com/tpope/vim-pathogen)与[Vundle](https://github.com/VundleVim/Vundle.vim) -,但是其作用的方面不同。 -pathogen是为了解决每一个插件安装后文件分散到多个目录不好管理而存在的。vundle是为了解决自动搜索及下载插件而存在的。 -这两个插件可同时使用。 +,但是其作用的方面不同。 +pathogen是为了解决每一个插件安装后文件分散到多个目录不好管理而存在的。vundle是为了解决自动搜索及下载插件而存在的。 +这两个插件可同时使用。 -1.安装Vundle +1.安装 Vundle ```sh mkdir ~/.vim/bundle @@ -405,6 +414,7 @@ Plugin 'Valloric/YouCompleteMe' 更多VIM 设定, 可参考[链接](http://www.cnblogs.com/witcxc/archive/2011/12/28/2304704.html) ## Emacs + Emacs传说中的神器,她不仅仅是一个编辑器,它是一个整合环境,或可称它为集成开发环境,这些功能如让使用者置身于全功能的操作系统中。 ![](images/1.4.emacs.png?raw=true) @@ -542,6 +552,7 @@ Emacs传说中的神器,她不仅仅是一个编辑器,它是一个整合环 6. 恭喜你,你现在可以体验在神器中开发Go的乐趣。默认speedbar是关闭的,如果打开需要把 ;; (speedbar 1) 前面的注释去掉,或者也可以通过 *M-x speedbar* 手动开启。 ## Eclipse + Eclipse也是非常常用的开发利器,以下介绍如何使用Eclipse来编写Go程序。 ![](images/1.4.eclipse1.png?raw=true) @@ -561,11 +572,11 @@ Eclipse也是非常常用的开发利器,以下介绍如何使用Eclipse来编 https://github.com/nsf/gocode 在windows下要安装git,通常用[msysgit](https://code.google.com/p/msysgit/) - + 再在cmd下安装: - + go get -u github.com/nsf/gocode - + 也可以下载代码,直接用go build来编译,会生成gocode.exe 4. 下载[MinGW](http://sourceforge.net/projects/mingw/files/MinGW/)并按要求装好 @@ -590,24 +601,25 @@ Eclipse也是非常常用的开发利器,以下介绍如何使用Eclipse来编 (3).配置GDB(可选,做调试用),设置GDB路径为MingW安装目录下的gdb.exe文件 ![](images/1.4.eclipse4.png?raw=true) - + 图1.14 设置GDB信息 6. 测试是否成功 新建一个go工程,再建立一个hello.go。如下图: - + ![](images/1.4.eclipse5.png?raw=true) - + 图1.15 新建项目编辑文件 - + 调试如下(要在console中用输入命令来调试): - + ![](images/1.4.eclipse6.png?raw=true) - + 图1.16 调试Go程序 ## IntelliJ IDEA + 熟悉Java的读者应该对于idea不陌生,idea是通过一个插件来支持go语言的高亮语法,代码提示和重构实现。 1. 先下载idea,idea支持多平台:win,mac,linux,如果有钱就买个正式版,如果不行就使用社区免费版,对于只是开发Go语言来说免费版足够用了 @@ -621,9 +633,9 @@ Eclipse也是非常常用的开发利器,以下介绍如何使用Eclipse来编 3. 这时候会看见很多插件,搜索找到Golang,双击,download and install。等到golang那一行后面出现Downloaded标志后,点OK。 ![](images/1.4.idea4.png?raw=true) - + 然后点 Apply .这时候IDE会要求你重启。 - + 4. 重启完毕后,创建新项目会发现已经可以创建golang项目了: ![](images/1.4.idea5.png?raw=true)