diff --git a/zh/01.1.md b/zh/01.1.md index 3094248b..4a7e9f6f 100644 --- a/zh/01.1.md +++ b/zh/01.1.md @@ -3,63 +3,24 @@ ## Go的三种安装方式 Go有多种安装方式,你可以选择自己喜欢的。这里我们介绍三种最常见的安装方式: +- Go标准包安装:Go提供了方便的安装包,支持Windows、Linux、Mac等系统。这种方式适合快速安装,可根据自己的系统位数下载好相应的安装包,一路 next 就可以轻松安装了。**推荐这种方式** +- 第三方工具安装:目前有很多方便的第三方软件包工具,例如 Ubuntu 的 apt-ge t和 wget、Mac 的 homebrew 等。这种安装方式适合那些熟悉相应系统的用户。 - Go源码安装:这是一种标准的软件安装方式。对于经常使用Unix类系统的用户,尤其对于开发者来说,从源码安装可以自己定制。 -- Go标准包安装:Go提供了方便的安装包,支持Windows、Linux、Mac等系统。这种方式适合快速安装,可根据自己的系统位数下载好相应的安装包,一路next就可以轻松安装了。**推荐这种方式** -- 第三方工具安装:目前有很多方便的第三方软件包工具,例如Ubuntu的apt-get和wget、Mac的homebrew等。这种安装方式适合那些熟悉相应系统的用户。 最后,如果你想在同一个系统中安装多个版本的Go,你可以参考第三方工具[GVM](https://github.com/moovweb/gvm),这是目前在这方面做得最好的工具,除非你知道怎么处理。 -## Go源码安装 -Go 1.5彻底移除C代码,Runtime、Compiler、Linker均由Go编写,实现自举。只需要安装了上一个版本,即可从源码安装。 - -在Go 1.5前,Go的源代码中,有些部分是用Plan 9 C和AT&T汇编写的,因此假如你要想从源码安装,就必须安装C的编译工具。 - -在Mac系统中,只要你安装了Xcode,就已经包含了相应的编译工具。 - -在类Unix系统中,需要安装gcc等工具。例如Ubuntu系统可通过在终端中执行`sudo apt-get install gcc libc6-dev`来安装编译工具。 - -在Windows系统中,你需要安装MinGW,然后通过MinGW安装gcc,并设置相应的环境变量。 - -你可以直接去官网[下载源码](http://golang.org/dl/),找相应的`goVERSION.src.tar.gz`的文件下载,下载之后解压缩到`$HOME`目录,执行如下代码: - - cd go/src - ./all.bash - -运行all.bash后出现"ALL TESTS PASSED"字样时才算安装成功。 - -上面是Unix风格的命令,Windows下的安装方式类似,只不过是运行`all.bat`,调用的编译器是MinGW的gcc。 - -如果是Mac或者Unix用户需要设置几个环境变量,如果想重启之后也能生效的话把下面的命令写到`.bashrc`或者`.zshrc`里面, - - export GOPATH=$HOME/gopath - export PATH=$PATH:$HOME/go/bin:$GOPATH/bin - -如果你是写入文件的,记得执行`bash .bashrc`或者`bash .zshrc`使得设置立马生效。 - -如果是window系统,就需要设置环境变量,在path里面增加相应的go所在的目录,设置gopath变量。 - -当你设置完毕之后在命令行里面输入`go`,看到如下图片即说明你已经安装成功 - -![](images/1.1.mac.png?raw=true) - -图1.1 源码安装之后执行Go命令的图 - -如果出现Go的Usage信息,那么说明Go已经安装成功了;如果出现该命令不存在,那么可以检查一下自己的PATH环境变中是否包含了Go的安装目录。 - -从go 1.8开始,GOPATH环境变量现在有一个默认值,如果它没有被设置。 它在Unix上默认为$HOME/go,在Windows上默认为%USERPROFILE%/go。 -> 关于上面的GOPATH将在下面小节详细讲解 ## Go标准包安装 -Go提供了每个平台打好包的一键安装,这些包默认会安装到如下目录:/usr/local/go (Windows系统:c:\Go),当然你可以改变他们的安装位置,但是改变之后你必须在你的环境变量中设置如下信息: +Go 提供了每个平台打好包的一键安装,这些包默认会安装到如下目录:/usr/local/go (Windows系统:c:\Go),当然你可以改变他们的安装位置,但是改变之后你必须在你的环境变量中设置如下信息: export GOROOT=$HOME/go - export GOPATH=$HOME/gopath + export GOPATH=$HOME/gopath (可选配置) export PATH=$PATH:$GOROOT/bin:$GOPATH/bin 上面这些命令对于Mac和Unix用户来说最好是写入`.bashrc`或者`.zshrc`文件,对于windows用户来说当然是写入环境变量。 -### 如何判断自己的操作系统是32位还是64位? +### 如何判断自己的操作系统是32位还是64位?(建议直接跳过, 现在操作系统一般都是 64位) 我们接下来的Go安装需要判断操作系统的位数,所以这小节我们先确定自己的系统类型。 @@ -70,16 +31,15 @@ Mac系统用户建议直接使用64位的,因为Go所支持的Mac OS X版本 Linux系统用户可通过在Terminal中执行命令`arch`(即`uname -m`)来查看系统信息: 64位系统显示 - x86_64 32位系统显示 - i386 ### Mac 安装 -访问[下载地址][downlink],32位系统下载go1.4.2.darwin-386-osx10.8.pkg(更新的版本已无32位下载),64位系统下载go1.8.3.darwin-amd64.pkg,双击下载文件,一路默认安装点击下一步,这个时候go已经安装到你的系统中,默认已经在PATH中增加了相应的`~/go/bin`,这个时候打开终端,输入`go` +访问[下载地址][downlink],64位系统下载 go1.14.7.darwin-amd64.pkg,双击下载文件,一路默认安装点击下一步,这个时候go已经安装到你的系统中,默认已经在PATH中增加了相应的`~/go/bin`, 这个时候打开终端,输入`go` +32位系统下载go1.4.2.darwin-386-osx10.8.pkg( 新的版本已无32位下载 ) 看到类似上面源码安装成功的图片说明已经安装成功 @@ -87,11 +47,13 @@ Linux系统用户可通过在Terminal中执行命令`arch`(即`uname -m`)来查 ### Linux 安装 -访问[下载地址][downlink],32位系统下载go1.8.3.linux-386.tar.gz,64位系统下载go1.8.3.linux-amd64.tar.gz, +访问[下载地址][downlink],64位系统下载go1.14.7.linux-amd64.tar.gz,32位系统下载go1.14.7.linux-386.tar.gz, + +直接使用 `tar -C /usr/local -xzf go1.4.7.linux-amd64.tar.gz` 解压到 local 目录 +设置PATH,`export PATH=$PATH:/usr/local/go/bin` 假定你想要安装Go的目录为 `$GO_INSTALL_DIR`,后面替换为相应的目录路径。 - -解压缩`tar.gz`包到安装目录下:`tar zxvf go1.8.3.linux-amd64.tar.gz -C $GO_INSTALL_DIR`。 +解压缩`tar.gz`包到安装目录下:`tar zxvf go1.14.7.linux-amd64.tar.gz -C $GO_INSTALL_DIR`。 设置PATH,`export PATH=$PATH:$GO_INSTALL_DIR/go/bin` @@ -105,7 +67,7 @@ Linux系统用户可通过在Terminal中执行命令`arch`(即`uname -m`)来查 ### Windows 安装 ### -访问[Golang 下载页][downlink],32 位请选择名称中包含 windows-386 的 msi 安装包,64 位请选择名称中包含 windows-amd64 的。下载好后运行,不要修改默认安装目录 C:\Go\,若安装到其他位置会导致不能执行自己所编写的 Go 代码。安装完成后默认会在环境变量 Path 后添加 Go 安装目录下的 bin 目录 `C:\Go\bin\`,并添加环境变量 GOROOT,值为 Go 安装根目录 `C:\Go\` 。 +访问[Golang 下载页][downlink],64 位请选择名称中包含 windows-amd64 的, 32 位请选择名称中包含 windows-386 的 msi 安装包。下载好后运行,不要修改默认安装目录 C:\Go\,若安装到其他位置会导致不能执行自己所编写的 Go 代码。安装完成后默认会在环境变量 Path 后添加 Go 安装目录下的 bin 目录 `C:\Go\bin\`,并添加环境变量 GOROOT,值为 Go 安装根目录 `C:\Go\` 。 **验证是否安装成功** @@ -113,6 +75,7 @@ Linux系统用户可通过在Terminal中执行命令`arch`(即`uname -m`)来查 不能的话请检查上述环境变量 Path 和 GOROOT 的值。若不存在请卸载后重新安装,存在请重启计算机后重试以上步骤。 + ## 第三方工具安装 ### GVM @@ -125,11 +88,11 @@ bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/bins 安装完成后我们就可以安装go了: ```sh -gvm install go1.8.3 -gvm use go1.8.3 +gvm install go1.14.7 +gvm use go1.14.7 ``` 也可以使用下面的命令,省去每次调用gvm use的麻烦: - gvm use go1.8.3 --default + gvm use go1.14.7 --default 执行完上面的命令之后GOPATH、GOROOT等环境变量会自动设置好,这样就可以直接使用了。 @@ -145,8 +108,10 @@ sudo apt-get install golang-stable git-core mercurial ### wget ```sh -wget https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz -sudo tar -xzf go1.8.3.linux-amd64.tar.gz -C /usr/local +wget https://storage.googleapis.com/golang/go1.14.7.linux-amd64.tar.gz +或 wget https://dl.google.com/go/go1.14.7.linux-amd64.tar.gz + +sudo tar -xzf go1.14.7.linux-amd64.tar.gz -C /usr/local ``` 配置环境变量: @@ -189,12 +154,54 @@ homebrew是Mac系统下面目前使用最多的管理软件的工具,目前已 brew update && brew upgrade brew install go brew install git -brew install mercurial //可选安装 +brew install mercurial // 可选安装 ``` +## Go源码安装 +Go 1.5彻底移除 C 代码,Runtime、Compiler、Linker均由Go编写,实现自举。只需要安装了上一个版本,即可从源码安装。 + +在Go 1.5前,Go的源代码中,有些部分是用Plan 9 C和AT&T汇编写的,因此假如你要想从源码安装,就必须安装C的编译工具。 + +在Mac系统中,只要你安装了Xcode,就已经包含了相应的编译工具。 + +在类Unix系统中,需要安装gcc等工具。例如Ubuntu系统可通过在终端中执行`sudo apt-get install gcc libc6-dev`来安装编译工具。 + +在 Windows 系统中,你需要安装 MinGW,然后通过 MinGW 安装 gcc,并设置相应的环境变量。 + +你可以直接去官网[下载源码](http://golang.org/dl/),找相应的`goVERSION.src.tar.gz`的文件下载,下载之后解压缩到`$HOME`目录,执行如下代码: + + cd go/src + ./all.bash + +运行all.bash后出现"ALL TESTS PASSED"字样时才算安装成功。 + +上面是Unix风格的命令,Windows下的安装方式类似,只不过是运行`all.bat`,调用的编译器是MinGW的gcc。 + +如果是Mac或者Unix用户需要设置几个环境变量,如果想重启之后也能生效的话把下面的命令写到`.bashrc`或者`.zshrc`里面, + + export GOPATH=$HOME/gopath + export PATH=$PATH:$HOME/go/bin:$GOPATH/bin + +如果你是写入文件的,记得执行`bash .bashrc`或者`bash .zshrc`使得设置立马生效。 + +如果是window系统,就需要设置环境变量,在path里面增加相应的go所在的目录,设置gopath变量。 + +当你设置完毕之后在命令行里面输入`go`,看到如下图片即说明你已经安装成功 + +![](images/1.1.mac.png?raw=true) + +图1.1 源码安装之后执行Go命令的图 + +如果出现Go的Usage信息,那么说明Go已经安装成功了;如果出现该命令不存在,那么可以检查一下自己的PATH环境变中是否包含了Go的安装目录。 + +从go 1.8开始,GOPATH 环境变量现在有一个默认值,如果它没有被设置。 它在Unix上默认为$HOME/go,在Windows上默认为%USERPROFILE%/go。 +从 Go1.11 开始, Go 官方加入了 Go Module 支持. +> 关于上面的 GO Module 和 GOPATH 将在下面小节详细讲解 + + ## links * [目录]() * 上一节: [Go环境配置](<01.0.md>) - * 下一节: [GOPATH 与工作空间](<01.2.md>) + * 下一节: [Go Module, GOPATH 与工作空间](<01.2.md>) [downlink]:http://golang.org/dl/ "Go安装包下载" diff --git a/zh/01.2.md b/zh/01.2.md index c99b6881..78284e45 100644 --- a/zh/01.2.md +++ b/zh/01.2.md @@ -1,8 +1,80 @@ -# 1.2 GOPATH与工作空间 +# 1.2 Go Module, GOPATH 与工作空间 -前面我们在安装Go的时候看到需要设置GOPATH变量,Go从1.1版本到1.7必须设置这个变量,而且不能和Go的安装目录一样,这个目录用来存放Go源码,Go的可运行文件,以及相应的编译之后的包文件。所以这个目录下面有三个子目录:src、bin、pkg +从 Go1.11 开始, Go 官方加入 Go Module 支持, Go1.12 成为默认支持; 从此告别源码必须放在 Gopath 中 +以及 Gopath 对初学者造成的困扰. -从go 1.8开始,GOPATH环境变量现在有一个默认值,如果它没有被设置。 它在Unix上默认为$HOME/go,在Windows上默认为%USERPROFILE%/go。 +## 使用 Go Module + +由于众所周知的原因, 要顺利安装 Go Module 的包, 需要先设置代理: + +公共模块代理: +```sh +export GOPROXY=https://goproxy.io // 也可以设置为 https://goproxy.cn 或者其他 +``` + +私有模块代理: +```sh +export GOPRIVATE=git.xxx.com +``` + +初始化: +``` +go mod init [module 名称] +``` + +检测和清理依赖: +``` +go mod tidy +``` + +安装指定包: +``` +go get -v github/com/go-ego/gse@v0.60.0-rc4.2 +``` + +### 更新依赖 +``` +go get -u +``` +更新指定包依赖: +``` +go get -u github.com/go-ego/gse +``` +指定版本: +``` +go get -u github/com/go-ego/gse@v0.60.0-rc4.2 +``` + +### Replace: + +使用命令行: +``` +go mod edit -replace github.com/go-ego/gse=/path/to/local/gse +go mod edit -replace github.com/go-ego/gse=github.com/vcaesar/gse +``` +也可以直接修改模块文件: + +``` +replace github.com/go-ego/gse => github.com/vcaesar/gse +``` + +## GOMODULE 常用命令: + +``` +go mod init # 初始化 go.mod +go mod tidy # 更新依赖文件 +go mod download # 下载依赖文件 + +go mod vendor # 将依赖转移至本地的 vendor 文件 +go mod edit # 手动修改依赖文件 +go mod graph # 打印依赖图 +go mod verify # 校验依赖 +``` + + +前面我们在安装 Go 的时候看到需要设置 GOPATH 变量,Go 从1.1版本到1.7必须设置这个变量,而且不能和Go的安装目录一样,这个目录用来存放Go源码,Go的可运行文件,以及相应的编译之后的包文件。所以这个目录下面有三个子目录:src、bin、pkg + +从go 1.8开始,GOPATH 环境变量现在有一个默认值,如果它没有被设置。 它在Unix上默认为$HOME/go,在Windows上默认为%USERPROFILE%/go。 ## GOPATH设置 go 命令依赖一个重要的环境变量:$GOPATH @@ -14,6 +86,7 @@ ```sh export GOPATH=/home/apple/mygo ``` + 为了方便,应该新建以上文件夹,并且上一行加入到 `.bashrc` 或者 `.zshrc` 或者自己的 `sh` 的配置文件中。 Windows 设置如下,新建一个环境变量名称叫做GOPATH: diff --git a/zh/01.3.md b/zh/01.3.md index d3bc806e..6b02ce43 100644 --- a/zh/01.3.md +++ b/zh/01.3.md @@ -200,5 +200,5 @@ gofmt的参数介绍 ## links * [目录]() - * 上一节: [GOPATH与工作空间](<01.2.md>) + * 上一节: [Go Module, GOPATH与工作空间](<01.2.md>) * 下一节: [Go开发工具](<01.4.md>) 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) diff --git a/zh/SUMMARY.md b/zh/SUMMARY.md index dcd220bb..31942ad5 100644 --- a/zh/SUMMARY.md +++ b/zh/SUMMARY.md @@ -1,6 +1,6 @@ * [Go环境配置](01.0.md) * [Go安装](01.1.md) - * [GOPATH 与工作空间](01.2.md) + * [Go Module, GOPATH 与工作空间](01.2.md) * [Go 命令](01.3.md) * [Go开发工具](01.4.md) * [小结](01.5.md)