一直以来Go的IDE并没有合适的选择.曾经试过liteide,但是不合口味,一直以来就用Sublime+Gosublime+Godef来作为环境,但是因为Sublime对显示的支持等因素.用起来不算很舒服.
最近看到Visual Studio Code对Go的支持,简直耳目一新.而且因为Visual Studio Code对跨平台的支持,感觉 简直 完美.
当然这些功能通过Sublime加插件的方式也能基本实现,但是两者带来的体验嘛,不可同日而语.
Visual Studio Code:下载地址
代码高亮
自动完成列表(使用gocode
)
代码片段
快速提示函数定义(使用godef
)
跳转定义(使用godef
)
查找引用(使用go-find-references
)
代码大纲(使用go-outline
)
重命名(使用gorename
)
保存时编译
代码格式化
Imports管理
调试(使用delve
)
Golang:下载地址
下载需要平台的安装包安装即可,这里不多介绍.我使用的是Mac,下载了pkg文件安装了就好,后面也不具体介绍其他平台的,但是大致都相同.安装完成后记得设置环境变量.
安装Visual Studio Code 0.10 或以上版本,在 Visual Studio Code中 按下c md-shift-p
,在命令框输入install,选择Install Extension
然后输入Go,查找并选中Rich Go language support for Visual Studio Code
,有两个,别选错了.
安装完成后会提示重启软件.
需要在命令行下依次安装以下插件,这些都是go语言编写的.
go get -u -v github.com/nsf/gocode
go get -u -v github.com/rogpeppe/godef
go get -u -v github.com/golang/lint/golint
go get -u -v github.com/lukehoban/go-find-references
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
按下cmd+,
或者通过菜单打开配置文件.
{ "go.buildOnSave": true, "go.lintOnSave": true, "go.vetOnSave": true, "go.buildFlags": [], "go.lintFlags": [], "go.vetFlags": [], "go.formatOnSave": true, "go.formatTool": "goreturns", "go.goroot": "/usr/local/go", "go.gopath": "/Users/damir/devTool/golib:/Users/damir/Code/go" }
其中 go.formatTool
可以修改为goreturns
,goimports
,gofmt
.
go.formatOnSave
设置为true
才可以保存时格式化.
相关的路径必须设置正确.
如果需要给不同的项目做不同的配置,那么将配置文件放入
.vscode/settings.json
即可
虽然插件作者强烈建议开启自动保存,但是我这里不推荐,开启了自动保存会出现代码编写一半发生跳动等问题.但是要使跳转定义等
功能正确工作,需要保存文件并确保无错.
打开Go项目所在文件夹,即可打开该项目,左侧点击相应的*.go文件,可见代码高亮了.
输入相应的代码会自动提示
从图片上可以看出,同时也显示了函数的定义,显示方式也很不错.
在实际编码过程中,经常会需要查看函数的参数信息,变量的类型,现在只需要将鼠标指上去即可查看.
跳转到函数定义只需要⌘+鼠标左键
,或者直接按下F12
即可.如果只需要大致查看⌘+鼠标左键指向
就能显示(可惜不能显示当前函数Doc).
返回到之前的按键是ctrl+-
或ctrl+shift+-
,这样就能快速导航了.
可以通过命令呼叫或者用快捷键shift+F12
.查找项目下相关的引用.
选中需要重命名的方法名称或者变量名,按下F2
即可修改.
特别注意,这里不能双击选中方法名称或者变量名,否则会出错.你可以鼠标单击该位置,或者拖动选择.
我下面先演示错误操作提示的错误信息.
另外,重构操作较慢,需要等待
保存时会自动编译,并列出错误信息,也可以在错误行查看具体的错误信息.
可以通过⌘+Shift+P
来呼出Command窗口,输入Go Import
来导入,另外可以设置快捷键.当然从上面的保存时编译中
的动态图可以看出,输入一个包名并直接使用,保存的时候会自动导入,当然如果文件未用到该包,保存时会自动去除.
{"key":"cmd+k i","command": "go.import.add"}
我用了⌘+K I
来作为快捷键.
调试还需要安装一些东西
要使用这个功能首先要保证go的版本为1.5或者以上.
这里介绍Mac OS的,如果其他操作系统可以参考[文档] ( https://github.com/derekparker/delve/wiki/Building) ,不过暂时不支持Windows
打开应用程序–>其他–>钥匙串访问
打开菜单 钥匙串访问–>证书助理–>创建证书
输入名字dlv-cert
,身份类型选择自签名根证书
,证书类型选择代码签名
,选中让我覆盖这些默认值
选项框.点击继续
.将有效天数
修改到3650
填写相应的信息直到选择指定用于该证书的位置
选择系统
,然后完成.
注意:安装前如果你的GoPath包含:分割的多个路径,请先改为单路径.
git clone https://github.com/derekparker/delve.git
然后进入到这个目录下面执行 GO15VENDOREXPERIMENT=1 CERT=dlv-cert make install
完成后即可安装成功
执行dlv
可见输出表示正确安装.
按照如下步骤自动会生成配置文件
dlv项目现在bug不少,beego的项目现在也不能被调试,不过作者在持续改进.
快捷键可以去快捷键的设置里面查看完整列表,这里列出一些常用的快捷键.
CMD+D #类似于sublime的该功能,能够自动选中其他相同的
ALT+鼠标点击 #选中不同的位置
CMD+UP #文件结尾
CMD+DOWN #文件开头
CMD+Right #行开头
CMD+Left #行结尾
CMD+P #调出导航,连按直接导航到相应的文件 CMD+E同样效果
CMD+O #打开文件
CMD+W #关闭激活窗口
CMD+K P #复制激活窗口的路径
CMD+B #折叠左侧窗口
CMD+SHIFT+P #显示命令窗口,等同于按F1
CMD+SHIFT+O #列出文件大纲
CTRL+G #跳转到行
CMD+F #查找,等同于CMD+G
ALT+CMD+F #替换
ALT+UP ALT+DOWN #移动行
CMD+. #快速Fix
CMD+ENTER #插入新行
CMD+SHIFT+K #删除当前行
以上快捷键是我自己常用的
这个插件在某些功能上执行缓慢,不过插件还在持续演进,另外Visual Studio Code确实值得称赞,可以称得上良心,具体的还需要上手去体验.
相关的功能还很多,后面我会继续介绍一些.准备写一些Visual Studio Code搭建一个Web项目的全部,还有Visual Studio Code写C#项目的一些东西.
Visual Studio Code 开源免费跨平台代码编辑器
Go for Visual Studio Code
delve