工欲善其事,必先利其器。做爲一個碼農,編輯器是咱們天天用的最多的工具。那麼怎麼構建一個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的,能夠實現自動補全,保存自動格式化,代碼的校驗,跳轉以及源代碼的查看等功能,以上功能完成一個工程化的項目徹底能夠夠了。
喜歡請關注"雲端漫記", 持續爲你更新