工欲善其事,必先利其器。做为一个码农,编辑器是咱们天天用的最多的工具。那么怎么构建一个go语言环境的编辑器呢?
由于习惯轻量的sublime,不太喜欢繁重的IDE,就将本身的sublime编辑器打造为适合go语言开发的IDE。sublime是一个高度定制化的编辑器,有强大的插件管理平台,并内置了宏操做和python语言进行插件开发,经过这些,能够打造出复合咱们习惯的IDE工具。
在这篇文章中,将基于现有插件平台的提供的插件,进行配置。python
根据本身的系统选择安装sublimegolang
下载地址编辑器
安装Package Control工具
按下快捷键ctrl+`
ui
在底部的控制台中输入如下代码,并回车url
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())
安装成功安装spa
出现package control菜单便可确认安装成功.net
sublime的插件有两种安装方式,一种手动安装,一种基于packageControl的pannel在线安装
在mac系统下,按下shift+cmd+p
便可调出安装面板。插件
做为一个go语言下的开发环境,咱们但愿sublime拥有那些功能呢?命令行
实现代码跳转
在sublime中安装godef插件
安装Godef插件
按下shift+cmd+p
修改配置
安装完成后,修改Godef插件的自定义配置文件
{ "goroot": "", // $GOROOT路径 "gopath": "" // $GOPATH路径 }
设置自定义快捷键
[ { "keys": ["ctrl+j"], "command": "godef" }, ]
默认的快捷键是gd,这里我本身设置的快捷键ctrl+j
注意键冲突
以上完成了代码跳转的实现
goSublime打造go语言IDE
sublime有一个gosublime的插件为了打造go语言的集成开发环境,它集成了go tool的一些命令如,golint, gocode goimport等工具集。
安装
安装说明,因为gosublime如今还不支持集成sublime集成式安装,因此能够经过将package包下载到sublime的包目录下手动来安装
具体安装参考:https://margo.sh/b/hello-margo/
设置配置
{ // Whether or not gscomplete(gocode) is enabled "gscomplete_enabled": true, // Whether or not gsfmt is enabled "fmt_enabled": true, // you may set specific environment variables here // e.g "env": { "PATH": "$HOME/go/bin:$PATH" } // in values, $PATH and ${PATH} are replaced with // the corresponding environment(PATH) variable, if it exists. "comp_lint_enabled": true, }
开启自动补全配置
打开用户自定义配置文件,开启如下两项配置,便可完成自动提示,代码补全功能。
{ "auto_complete": true, "auto_match_enabled": true }
gosulime的用法
输入两次cmd+.
,调出gosublime的控制面板
进入能够查看源码
debug
在sublime下作图形化debug,目前还未搜到相关的插件支持。
能够经过命令行的delves进行调试。
命令行工具
看到一些文章介绍在sublimne中实现go build,感受用起来不是很舒服,感受仍是sublime+iterm2组合来使用命令行工具。
总结
经过gosublime和Godef插件的安装和设置,完成了go语言IDE的,能够实现自动补全,保存自动格式化,代码的校验,跳转以及源代码的查看等功能,以上功能完成一个工程化的项目彻底能够够了。
喜欢请关注"云端漫记", 持续为你更新