update develop tools zh/01.4m

This commit is contained in:
vcaesar
2020-08-09 06:37:56 -04:00
parent b6ad1c0842
commit 70469f5bc7

View File

@@ -1,6 +1,199 @@
# 1.4 Go开发工具
本节我将介绍几个开发工具,它们都具有自动化提示自动化fmt功能。因为它们都是跨平台的所以安装步骤之类的都是通用的。
本节我将介绍几个开发工具,它们都具有自动化补全,自动化 fmt 和检查等功能。因为它们都是跨平台的,所以安装步骤之类的都是通用的。
## Visual Studio Code
Vscode 是微软基于 Electron 和 Web 技术构建的开源编辑器, 是一款非常强大的编辑器。
而且目前 vscode-go 已升级为 Go 官方维护的工具, 也是当前免费开源的首选开发工具.
开源地址: https://github.com/Microsoft/vscode
1、安装Visual Studio Code 最新版
官方网站https://code.visualstudio.com
下载 Visual Studio Code 最新版,安装过程略。
2、安装 Go 插件
点击右边的 Extensions/扩展 图标
搜索 `Go` 插件
在插件列表中,选择 Go进行安装安装之后系统会提示重启 Visual Studio Code。
写一个 Hello World ,然后运行:
hello.go
```Go
package main
import "fmt"
func main() {
fmt.Printf("Hello word")
}
```
保存的时候, vscode 右下角会提示,需要安装依赖包, 点击 Install All ( 建议提前设好代理, 参考 Go Module 章节 )
另外建议使用 golint 或者 golangci-lint 等工具, 可以写出更优雅的代码; 也可以把自动保存功能开启, 开启方法为:选择菜单 File点击 Auto save。
VSCode 代码设置可用于 Go 扩展。这些都可以在用户的喜好来设置或工作区设置(.vscode/settings.json
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/
## Sublime Text
这里将介绍Sublime Text 3以下简称Sublime+ GoSublime + gocode的组合那么为什么选择这个组合呢
- 自动化提示代码,如下图所示
![](images/1.4.sublime1.png?raw=true)
图1.5 sublime自动化提示界面
- 保存的时候自动格式化代码让您编写的代码更加美观符合Go的标准。
- 支持项目管理
![](images/1.4.sublime2.png?raw=true)
图1.6 sublime项目管理界面
- 支持语法高亮
- Sublime Text 3可免费使用只是保存次数达到一定数量之后就会提示是否购买点击取消继续用和正式注册版本没有任何区别。
接下来就开始讲如何安装,下载 [Sublime](http://www.sublimetext.com/)
根据自己相应的系统下载相应的版本然后打开Sublime对于不熟悉Sublime的同学可以先看一下这篇文章[Sublime Text 全程指南](http://blog.jobbole.com/88648/)或者[sublime text3入门教程](http://blog.csdn.net/sam976/article/details/52076271)
1. 打开之后安装 Package ControlCtrl+` 打开命令行,执行如下代码:
适用于 Sublime Text 3
```Go
import urllib.request,os;pf='Package Control.sublime-package';ipp=sublime.installed_packages_path();urllib.request.install_opener(urllib.request.build_opener(urllib.request.ProxyHandler()));open(os.path.join(ipp,pf),'wb').write(urllib.request.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read())
```
适用于 Sublime Text 2
```Go
import urllib2,os;pf='Package Control.sublime-package';ipp=sublime.installed_packages_path();os.makedirs(ipp)ifnotos.path.exists(ipp)elseNone;urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler()));open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read());print('Please restart Sublime Text to finish installation')
```
这个时候重启一下Sublime可以发现在在菜单栏多了一个如下的栏目说明Package Control已经安装成功了。
![](images/1.4.sublime3.png?raw=true)
图1.7 sublime包管理
2. 安装完之后就可以安装Sublime的插件了。需安装GoSublime、SidebarEnhancements和Go Build安装插件之后记得重启Sublime生效Ctrl+Shift+p打开Package Controll 输入`pcip`即“Package Control: Install Package”的缩写
这个时候看左下角显示正在读取包数据,完成之后出现如下界面
![](images/1.4.sublime4.png?raw=true)
图1.8 sublime安装插件界面
这个时候输入GoSublime按确定就开始安装了。同理应用于SidebarEnhancements和Go Build。
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.`是不是自动化提示有函数了。
如果已经出现这个提示,那说明你已经安装完成了,并且完成了自动提示。
如果没有出现这样的提示,一般就是你的`$PATH`没有配置正确。你可以打开终端输入gocode是不是能够正确运行如果不行就说明`$PATH`没有配置正确。
(针对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
## LiteIDE
@@ -91,189 +284,10 @@
在LiteIDE中可以方便的查看和设置GOPATH。通过`菜单查看GOPATH`设置可以查看系统中已存在的GOPATH列表
同时可根据需要添加项目目录到自定义GOPATH列表中。
## Sublime Text
这里将介绍Sublime Text 3以下简称Sublime+ GoSublime + gocode的组合那么为什么选择这个组合呢
- 自动化提示代码,如下图所示
![](images/1.4.sublime1.png?raw=true)
图1.5 sublime自动化提示界面
- 保存的时候自动格式化代码让您编写的代码更加美观符合Go的标准。
- 支持项目管理
![](images/1.4.sublime2.png?raw=true)
图1.6 sublime项目管理界面
- 支持语法高亮
- Sublime Text 3可免费使用只是保存次数达到一定数量之后就会提示是否购买点击取消继续用和正式注册版本没有任何区别。
接下来就开始讲如何安装,下载 [Sublime](http://www.sublimetext.com/)
根据自己相应的系统下载相应的版本然后打开Sublime对于不熟悉Sublime的同学可以先看一下这篇文章[Sublime Text 全程指南](http://blog.jobbole.com/88648/)或者[sublime text3入门教程](http://blog.csdn.net/sam976/article/details/52076271)
1. 打开之后安装 Package ControlCtrl+` 打开命令行,执行如下代码:
适用于 Sublime Text 3
```Go
import urllib.request,os;pf='Package Control.sublime-package';ipp=sublime.installed_packages_path();urllib.request.install_opener(urllib.request.build_opener(urllib.request.ProxyHandler()));open(os.path.join(ipp,pf),'wb').write(urllib.request.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read())
```
适用于 Sublime Text 2
```Go
import urllib2,os;pf='Package Control.sublime-package';ipp=sublime.installed_packages_path();os.makedirs(ipp)ifnotos.path.exists(ipp)elseNone;urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler()));open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read());print('Please restart Sublime Text to finish installation')
```
这个时候重启一下Sublime可以发现在在菜单栏多了一个如下的栏目说明Package Control已经安装成功了。
![](images/1.4.sublime3.png?raw=true)
图1.7 sublime包管理
2. 安装完之后就可以安装Sublime的插件了。需安装GoSublime、SidebarEnhancements和Go Build安装插件之后记得重启Sublime生效Ctrl+Shift+p打开Package Controll 输入`pcip`即“Package Control: Install Package”的缩写
这个时候看左下角显示正在读取包数据,完成之后出现如下界面
![](images/1.4.sublime4.png?raw=true)
图1.8 sublime安装插件界面
这个时候输入GoSublime按确定就开始安装了。同理应用于SidebarEnhancements和Go Build。
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.`是不是自动化提示有函数了。
如果已经出现这个提示,那说明你已经安装完成了,并且完成了自动提示。
如果没有出现这样的提示,一般就是你的`$PATH`没有配置正确。你可以打开终端输入gocode是不是能够正确运行如果不行就说明`$PATH`没有配置正确。
(针对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
vscode是微软基于Electron和web技术构建的开源编辑器, 是一款很强大的编辑器。开源地址:https://github.com/Microsoft/vscode
1、安装Visual Studio Code 最新版
官方网站https://code.visualstudio.com/
下载Visual Studio Code 最新版,安装过程略。
2、安装Go插件
点击右边的 Extensions 图标
搜索Go插件
在插件列表中,选择 Go进行安装安装之后系统会提示重启 Visual Studio Code。
建议把自动保存功能开启。开启方法为:选择菜单 File点击 Auto save。
vscode代码设置可用于Go扩展。这些都可以在用户的喜好来设置或工作区设置.vscode/settings.json
打开首选项-用户设置 settings.json:
```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
}
```
接着安装依赖包支持(网络不稳定,请直接到 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/...
```
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
}
]
}
```
## Atom
AtomGitHub基于Electron和web技术构建的开源编辑器, 是一款很漂亮强大的编辑器缺点是速度比较慢。
AtomGitHub 基于 Electron 和 Web 技术构建的开源编辑器, 是一款很漂亮强大的编辑器, 缺点是速度比较慢。
首先要先安装下 Atom下载地址: https://atom.io/
@@ -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语言使用最为广泛开发环境的的插件
@@ -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)
@@ -608,6 +619,7 @@ Eclipse也是非常常用的开发利器以下介绍如何使用Eclipse来编
图1.16 调试Go程序
## IntelliJ IDEA
熟悉Java的读者应该对于idea不陌生idea是通过一个插件来支持go语言的高亮语法,代码提示和重构实现。
1. 先下载ideaidea支持多平台win,mac,linux如果有钱就买个正式版如果不行就使用社区免费版对于只是开发Go语言来说免费版足够用了