使用 VS Code 快速搭建 Golang 开发环境

  刚开始接触 Golang 时使用的是 Eclipse + Goclipse 开发环境,但是你懂的,Eclipse的体量有点大,当有一个非常好的 idea 时 Launch and Create the project 的时间足以让灵感飞走了,寻找一款轻量级又耐用的 golang 款 IDE 一直潜伏在心里。第一次接触到 VS Code 时是一个演讲视频使用 VS code 进行 Python 快速开发,于是下载下来,发现竟然还有 Go 这个插件,从此便爱不释手。这货和 Visual Studio 虽然出自同门,但走的和他哥完完全全是两条路,这家伙是一个狂野的,细腻的,快速迭代的,社区化运营的开放性IDE。
  安装和启动 VS Code 可以根据自己的操作系统平台分别下载,成功的安装 Go 插件需要一个科学的网络环境,具体配置可以参考 GoGetPorxyConfig . Linux 和 MacOS 下 Shell 的代理设置比较容易,如果在 Windows 环境下可以参考一下这个 Repo 里的 proxy-config 文件,通过 PowerShell 实现 Shell 的代理切换。
  安装 Golang 运行时 是必须的,具体的安装和设置可以参考 官方文档,其中 How to Write Go Code 可以详细阅读以下,毕竟Golang作为一种完全开源的语言,代码目录的组织方式可能会和传统语言有点区别。GOROOT 和 GOPATH 的环境变量需要设置,同时需要将 GOROOT/bin 和 GOPATH/bin 加入到 PATH 变量中,并且我们的开发目录将来也会包含在 GOPATH 中,和其他第三方应用放在一起,代码的索引方式是通过代码的远程 Repo 地址来工作的,也就是说想要开发 Golang 程序,你需要先有一个程序使用者可以访问到的 Repo 才行。
  先大体了解以下 VS Code,总结了一下一个 IDE 的基本功能大概包括:

  • Linting,
  • Debugging (multi-threaded, remote),
  • Intellisense,
  • Code Formatting,
  • Refactoring,
  • Unit Tests,
  • Snippets, and more.

  一般的IDE都是定义框架然后通过插件的形式支持各种语言, VS Code 也不例外,每种语言也都只是提供了一个基本运行时(Runtime),IDE的功能也需要第三方去实现,比如 Pyhon 中 代码检查可以选择 Pylint 或者 Flake8,代码格式化可以选择 Autopep8 或者 Yapf . 同样,Golang 虽然是开箱即用的语言,但是想要写出规范的代码还是需要很多第三方的代码工具来协助的。下载安装并运行 VS Code 后,使用 Ctrl + Shift + x 快捷键 进入插件管理窗口 输入 “Go” ,搜索结果中 作者为 lukehoban 的插件就是比较推荐的 Go 插件, 安装后即可使用,插件的 repo https://github.com/Microsoft/vscode-go
Go 插件列出了实现代码编辑功能用到的第三方应用:

  • Completion Lists (using gocode)
  • Signature Help (using gogetdoc or godef+godoc)
  • Snippets
  • Quick Info (using gogetdoc or godef+godoc)
  • Goto Definition (using gogetdoc or godef+godoc)
  • Find References (using guru)
  • Find implementations (using guru)
  • References CodeLens
  • File outline (using go-outline)
  • Workspace symbol search (using go-symbols)
  • Rename (using gorename. Note: For Undo after rename to work in Windows you need to have diff tool in your path)
  • Build-on-save (using go build and go test)
  • Lint-on-save (using golint or gometalinter)
  • Format on save as well as format manually (using goreturns or goimports or gofmt)
  • Generate unit tests skeleton (using gotests)
  • Add Imports (using gopkgs)
  • Add/Remove Tags on struct fields (using gomodifytags)
  • Semantic/Syntactic error reporting as you type (using gotype-live)
  • Run Tests under the cursor, in current file, in current package, in the whole workspace (using go test)
  • Show code coverage
  • Generate method stubs for interfaces (using impl)
  • Fill struct literals with default values (using fillstruct)
  • [partially implemented] Debugging (using delve)
  • Upload to the Go Playground (using goplay)

具体包括:

// Tools used explicitly by the basic features of the extension
const importantTools = [
	'gocode',
	'gopkgs',
	'go-outline',
	'go-symbols',
	'guru',
	'gorename',
	'godef',
	'godoc',
	'gogetdoc',
	'goreturns',
	'goimports',
	'golint',
	'gometalinter',
	'megacheck',
	'dlv'
];

检索它所用第三方插件的下载地址:
https://github.com/Microsoft/vscode-go/blob/master/src/goInstallTools.ts
对于强迫症患者,可以使用下面的命令一次性把第三方应用全部安装(一共22个应用,前15个为 Tools used explicitly by the basic features of the extension ):

go get -u -v github.com/nsf/gocode
go get -u -v github.com/uudashr/gopkgs/cmd/gopkgs
go get -u -v github.com/ramya-rao-a/go-outline
go get -u -v github.com/acroca/go-symbols
go get -u -v golang.org/x/tools/cmd/guru
go get -u -v golang.org/x/tools/cmd/gorename
go get -u -v github.com/rogpeppe/godef
go get -u -v golang.org/x/tools/cmd/godoc
go get -u -v github.com/zmb3/gogetdoc
go get -u -v github.com/sqs/goreturns
go get -u -v golang.org/x/tools/cmd/goimports
go get -u -v github.com/golang/lint/golint
go get -u -v github.com/alecthomas/gometalinter
go get -u -v honnef.co/go/tools/...
go get -u -v github.com/derekparker/delve/cmd/dlv

go get -u -v github.com/haya14busa/goplay/cmd/goplay
go get -u -v github.com/josharian/impl
go get -u -v github.com/tylerb/gotype-live
go get -u -v github.com/cweill/gotests/...
go get -u -v github.com/sourcegraph/go-langserver
go get -u -v github.com/davidrjenni/reftools/cmd/fillstruct
go get -u -v github.com/fatih/gomodifytags

再安装go vendor 机制 依赖管理工具 glide , Godepgovendor :

curl https://glide.sh/get | sh
go get -u -v github.com/golang/dep/cmd/dep
go get -u github.com/kardianos/govendor

这三种 vendor 管理工具对应的配置文件分别为:

  1. glide -> glide.yml
  2. Godep -> Gopkg.toml
  3. govendor -> vendor.json

为了方便将当前工作目录加入到 $GOPATH 中,将下面指令加入到 ~/.bashrc 文件中:

# set $PWD append to $GOPATH
gopath-pwd(){
  if [[ $GOPATH =~ .*$PWD.* ]];then
    echo "currnet dir is already in GOPATH"
  else
    export GOPATH=$GOPATH:$PWD
    echo "fininsh setting $PWD in GOPATH"
  fi
}
export -f gopath-pwd

如果是 MacOS 系统,为了方便命令行启动 VS Code 需要创建一个软连接:

ln -s /Applications/Visual\ Studio\ Code.app/Contents/Resources/app/bin/code ~/bin/code

如果工程目录不在 $GOPATH 中,需要在 VS Code 中使用
Ctrl+Shift+P -> Open workspace settings 中添加一下信息

"go.inferGopath": true,

保存配置后,VS Code 会将当前目录附加到 $GOPATH 中。

安装完成后,可以配置 launch.json (which is where VS Code stores the debugger configurations)
文件,使用 Ctrl+Shift+D 进入调试视图,选择一个调试配置,然后 F5 快捷键 调试 Golang 程序,可以使用 Ctrl + p 中输入 “debug add config” 根据向导来添加使用于 Golang 的 Configuration .
debug add config

  描述一下 VS Code 的 workspace 的概念。VS Code 定义于一个轻量级的 IDE ,连 workspace 也是轻量级的,它的 workspace 就是一个 json 配置文件,里面记录了这个 workspace 包含的 folders 和 settings

{
	"folders": [
		{
			"path": "xxxxxx"
		},
		{
			"path": "yyyyyy"
		}
	],
	"settings": {
		
	}
}

只要保存一个 workspace 文件就可以同时打开多个目录,非常方便。同时 VS Code 的组织层次为:
User -> Workspace -> Floder 三个级别,可以根据自己的实际需求灵活配置。

  最后再描述一下 VS Code 的 tasks 的概念。有很多工具可以自动执行任务,如 linting, building, packaging, testing or deploying software systems,这些工具大部分都是从命令行运行的,并在内部软件开发循环(编辑,编译,测试和调试)内外自动执行作业。鉴于它们在开发生命周期中的重要性,能够在VS Code中运行工具并分析其结果非常有帮助。因此在目录下创建 tasks.json 文件,自定义任务可以有效的提高开发效率。

下面自定义了一个 编译当前打开文件的 tasks:

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "go-build-current",
            "type": "shell",
            "command": "go",
            "args": [
                "build",
                "${relativeFile}",
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        },
    ]
}

参考文档:

https://github.com/golang/go/wiki

### 回答1: 要在 Mac 电脑上使用 VS Code 进行 Golang 开发,需要完成以下步骤: 1. 安装 Golang 首先,需要安装 Golang。可以从官网上下载并安装 Golang:https://golang.org/dl/ 2. 安装 VS Code 接下来,需要安装 VS Code。可以从官网上下载并安装 VS Code:https://code.visualstudio.com/ 3. 安装 Go 插件 打开 VS Code,点击左侧的扩展(Extension)图标,搜索并安装官方的 Go 插件。安装完毕后,需要重启 VS Code。 4. 配置环境变量 打开终端,输入以下命令,打开 `.bash_profile` 文件(如果没有则新建): ``` $ vi ~/.bash_profile ``` 在文件中添加以下两行代码: ``` export GOPATH=$HOME/go export PATH=$PATH:$GOPATH/bin ``` 保存并退出文件,然后执行以下命令以使其生效: ``` $ source ~/.bash_profile ``` 5. 创建项目 创建一个新的 Golang 项目,在终端中使用以下命令: ``` $ mkdir hello $ cd hello $ go mod init hello ``` 6. 编写代码 在 VS Code 中打开 `hello` 文件夹,创建一个名为 `main.go` 的文件,并编写以下代码: ```go package main import "fmt" func main() { fmt.Println("Hello, world!") } ``` 7. 运行代码 在 VS Code 中打开终端,使用以下命令运行代码: ``` $ go run main.go ``` 这样,就可以使用 VS Code 进行 Golang 开发了。 ### 回答2: 要在Mac电脑上集成Golang开发环境,可以按照以下步骤进行: 第一步,首先要确保你的Mac上已经安装了Golang。你可以前往Golang官方网站下载安装包,并按照指示进行安装。安装完成后,在终端中输入“go version”命令来验证Golang是否成功安装。 第二步,安装集成开发环境(IDE)如VS Code。你可以在VS Code官方网站下载安装包,并进行安装。安装完成后,打开VS Code。 第三步,打开VS Code的扩展功能,搜索并安装"Golang"扩展。这个扩展可以提供Golang相关的功能和语法高亮等。 第四步,配置VS Code以与Golang集成。首先,点击左侧的九宫格按钮,打开扩展视图。然后,在搜索框中输入"Golang"来找到相应的扩展。点击扩展旁边的齿轮图标打开设置。在设置中,你可以配置Golang的路径、代理设置等。 第五步,设置GOPATH和GOROOT环境变量。在Mac上,你可以通过在终端中运行"export"命令来设置这些环境变量。GOPATH是你的工作区目录,而GOROOT是Golang的安装路径。 第六步,创建一个Golang项目。在终端中,进入到你想要创建项目的目录,然后运行"mkdir"命令来创建一个文件夹。进入该文件夹,并打开VS Code。 第七步,编写Golang代码。在VS Code中,创建一个新文件,使用".go"为文件后缀。接下来,你可以编写Golang代码,并使用VS Code提供的自动补全和语法高亮功能。 第八步,运行Golang代码。在终端中,使用"go run"命令来运行你的Golang代码。你也可以使用其他命令来构建和运行你的项目。 综上所述,在Mac电脑上集成Golang开发环境,你需要安装GolangVS Code以及相关扩展,并进行一些配置。然后,你可以使用VS Code来创建和编写Golang项目,并在终端中运行你的代码。 ### 回答3: 要在Mac电脑上集成golang开发环境,可以按照以下步骤进行操作: 1. 安装Golang:在Mac电脑上打开终端,可以使用命令行工具Homebrew安装golang。在终端中输入以下命令: ``` brew install golang ``` 这将会安装最新版本的Golang。 2. 配置环境变量:在终端中输入以下命令,打开.bash_profile文件: ``` open ~/.bash_profile ``` 在打开的文件中添加以下内容,保存并关闭文件: ``` export GOROOT=/usr/local/opt/go/libexec export GOPATH=$HOME/go export PATH=$PATH:$GOPATH/bin ``` 这将设置GOROOT、GOPATH和PATH环境变量。 3. 安装VS Code:在Mac电脑上下载并安装Visual Studio CodeVS Code)。 4. 安装Go扩展插件:在VS Code中打开扩展视图(左侧的方块图标),搜索并安装Go扩展插件,然后重新启动VS Code。 5. 创建Go项目:在终端中输入以下命令,创建一个新的Go项目: ``` mkdir ~/go/src/myproject ``` 这将在GOPATH目录下创建一个myproject文件夹来存放项目代码。 6. 在VS Code中打开项目:在VS Code的菜单中选择“文件” -> “打开文件夹”,然后选择上一步创建的myproject文件夹。 7. 配置调试环境:在项目文件夹中创建一个名为“launch.json”的文件,添加以下内容: ``` { "version": "0.2.0", "configurations": [{ "name": "Launch", "type": "go", "request": "launch", "mode": "debug", "program": "${file}" }] } ``` 这将配置VS Code的调试功能。 8. 开始编写代码:使用VS Code编写、调试和运行Go代码。 通过以上步骤,你可以在Mac电脑上成功集成golang开发环境
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值