
1. 摘要
本文為輝哥在使用GO語言環(huán)境VS Code過程中環(huán)境遇到的問題的記錄備忘。
2. 內(nèi)容
2.1 VS Code常見go插件的功能及安裝方法?
VS Code常見插件的功能包括:
? Colorization 代碼著彩色
? Completion Lists 代碼自動(dòng)完成(使用gocode)
? Snippets 代碼片段
? Quick Info 快速提示信息(使用godef)
? Goto Definition 跳轉(zhuǎn)到定義(使用godef)
? Find References 搜索參考引用(使用go-find-references)
? File outline 文件大綱(使用go-outline)
? Workspace symbol search 工作區(qū)符號(hào)搜索(使用 go-symbols)
? Rename 重命名(使用gorename)
? Build-on-save 保存構(gòu)建(使用go build和go test)
? Format 代碼格式化(使用goreturns或goimports或gofmt)
? Add Imports 添加引用(使用 gopkgs)
? Debugging 調(diào)試代碼(使用delve)
插件手動(dòng)安裝方法:
vscode默認(rèn)會(huì)提示安裝缺少的插件,但有些插件需要翻墻,需要手動(dòng)安裝。
不需要翻墻的可直接go get,否則需要手動(dòng)下載對(duì)應(yīng)的插件包,放到系統(tǒng)GOPATH/src下,
并建立對(duì)應(yīng)的目錄結(jié)構(gòu),執(zhí)行g(shù)o install。
1)安裝gocode
go get -u -v github.com/nsf/gocode
2)安裝godef
go get -u -v github.com/rogpeppe/godef
3)安裝golint
go get -u -v github.com/golang/lint/golint
4)安裝go-find-references
go get -u -v github.com/lukehoban/go-find-references
5)安裝go-outline
go get -u -v github.com/lukehoban/go-outline
6)安裝goreturns
go get -u -v sourcegraph.com/sqs/goreturns
go get -u -v github.com/sqs/goreturns
7)安裝gorename
go get -u -v golang.org/x/tools/cmd/gorename
8)安裝gopkgs
go get -u -v github.com/tpng/gopkgs
9)安裝go-symbols
go get -u -v github.com/newhook/go-symbols
2.2 VS Code常見快捷鍵
通用快捷鍵
| 快捷鍵 | 作用 |
|---|---|
| Ctrl+Shift+P,F1 | 展示全局命令面板 |
| Ctrl+P | 快速打開最近打開的文件 |
| Ctrl+Shift+N | 打開新的編輯器窗口 |
| Ctrl+Shift+W | 關(guān)閉編輯器 |
基礎(chǔ)編輯
| 快捷鍵 | 作用 | |
|---|---|---|
| Ctrl + X | 剪切 | |
| Ctrl + C | 復(fù)制 | |
| Alt + up/down | 移動(dòng)行上下 | |
| Shift + Alt up/down | 在當(dāng)前行上下復(fù)制當(dāng)前行 | |
| Ctrl + Shift + K | 刪除行 | |
| Ctrl + Enter | 在當(dāng)前行下插入新的一行 | |
| Ctrl + Shift + Enter | 在當(dāng)前行上插入新的一行 | |
| Ctrl + Shift + | 匹配花括號(hào)的閉合處,跳轉(zhuǎn) | |
| Ctrl + ] / [ | 行縮進(jìn) | |
| Home | 光標(biāo)跳轉(zhuǎn)到行頭 | |
| End | 光標(biāo)跳轉(zhuǎn)到行尾 | |
| Ctrl + Home | 跳轉(zhuǎn)到頁頭 | |
| Ctrl + End | 跳轉(zhuǎn)到頁尾 | |
| Ctrl + up/down | 行視圖上下偏移 | |
| Alt + PgUp/PgDown | 屏視圖上下偏移 | |
| Ctrl + Shift + [ | 折疊區(qū)域代碼 | |
| Ctrl + Shift + ] | 展開區(qū)域代碼 | |
| Ctrl + K Ctrl + [ | 折疊所有子區(qū)域代碼 | |
| Ctrl + k Ctrl + ] | 展開所有折疊的子區(qū)域代碼 | |
| Ctrl + K Ctrl + 0 | 折疊所有區(qū)域代碼 | |
| Ctrl + K Ctrl + J | 展開所有折疊區(qū)域代碼 | |
| Ctrl + K Ctrl + C | 添加行注釋 | |
| Ctrl + K Ctrl + U | 刪除行注釋 | |
| Ctrl + / | 添加關(guān)閉行注釋 | |
| Shift + Alt +A | 塊區(qū)域注釋 | |
| Alt + Z | 添加關(guān)閉詞匯包含 |
導(dǎo)航
| 快捷鍵 | 作用 |
|---|---|
| Ctrl + T | 列出所有符號(hào) |
| Ctrl + G | 跳轉(zhuǎn)行 |
| Ctrl + P | 跳轉(zhuǎn)文件 |
| Ctrl + Shift + O | 跳轉(zhuǎn)到符號(hào)處 |
| Ctrl + Shift + M | 打開問題展示面板 |
| F8 | 跳轉(zhuǎn)到下一個(gè)錯(cuò)誤或者警告 |
| Shift + F8 | 跳轉(zhuǎn)到上一個(gè)錯(cuò)誤或者警告 |
| Ctrl + Shift + Tab | 切換到最近打開的文件 |
| Alt + left(←) / right(→) | 向后、向前 |
| Ctrl + M | 進(jìn)入用Tab來移動(dòng)焦點(diǎn) |
| Ctrl + Alt + K | 標(biāo)識(shí)書簽(BookMark或者取消書簽) |
| Ctrl + B | 顯示/取消標(biāo)簽導(dǎo)航 |
查詢與替換
| 快捷鍵 | 作用 |
|---|---|
| Ctrl + F | 查詢 |
| Ctrl + H | 替換 |
| F3 / Shift + F3 | 查詢下一個(gè)/上一個(gè) |
| Alt + Enter | 選中所有出現(xiàn)在查詢中的 |
| Ctrl + D | 匹配當(dāng)前選中的詞匯或者行,再次選中-可操作 |
| Ctrl + K Ctrl + D | 移動(dòng)當(dāng)前選擇到下個(gè)匹配選擇的位置(光標(biāo)選定) |
| Alt + C / R / W |
多行光標(biāo)操作于選擇
| 快捷鍵 | 作用 |
|---|---|
| Alt + Click | 插入光標(biāo)-支持多個(gè) |
| Ctrl + Alt + up/down | 上下插入光標(biāo)-支持多個(gè) |
| Ctrl + U | 撤銷最后一次光標(biāo)操作 |
| Shift + Alt + I | 插入光標(biāo)到選中范圍內(nèi)所有行結(jié)束符 |
| Ctrl + I | 選中當(dāng)前行 |
| Ctrl + Shift + L | 選擇所有出現(xiàn)在當(dāng)前選中的行-操作 |
| Ctrl + F2 | 選擇所有出現(xiàn)在當(dāng)前選中的詞匯-操作 |
| Shift + Alt + right | 從光標(biāo)處擴(kuò)展選中全行 |
| Shift + Alt + left | 收縮選擇區(qū)域 |
| Shift + Alt + (drag mouse) | 鼠標(biāo)拖動(dòng)區(qū)域,同時(shí)在多個(gè)行結(jié)束符插入光標(biāo) |
| Ctrl + Shift + Alt + (Arrow Key) | 也是插入多行光標(biāo)的[方向鍵控制] |
| Ctrl + Shift + Alt + PgUp/PgDown | 也是插入多行光標(biāo)的[整屏生效] |
豐富的語言操作
| 快捷鍵 | 作用 |
|---|---|
| Ctrl + Space | 輸入建議[智能提示] |
| Ctrl + Shift + Space | 參數(shù)提示 |
| Tab | Emmet指令觸發(fā)/縮進(jìn) |
| Shift + Alt + F | 格式化代碼 |
| Ctrl + K Ctrl + F | 格式化選中部分的代碼 |
| F12 | 跳轉(zhuǎn)到定義處 |
| Alt + F12 | 代碼片段顯示定義 |
| Ctrl + K F12 | 在其他窗口打開定義處 |
| Ctrl + . | 快速修復(fù)部分可以修復(fù)的語法錯(cuò)誤 |
| Shift + F12 | 顯示所有引用 |
| F2 | 重命名符號(hào) |
| Ctrl + Shift + . / , | 替換下個(gè)值 |
| Ctrl + K Ctrl + X | 移除空白字符 |
| Ctrl + K M | 更改頁面文檔格式 |
編輯器管理
| 快捷鍵 | 作用 | |
|---|---|---|
| Ctrl + F4, Ctrl + W | 關(guān)閉編輯器 | |
| Ctrl + k F | 關(guān)閉當(dāng)前打開的文件夾 | |
| Ctrl + | 切割編輯窗口 | |
| Ctrl + 1/2/3 | 切換焦點(diǎn)在不同的切割窗口 | |
| Ctrl + K Ctrl <-/-> | 切換焦點(diǎn)在不同的切割窗口 | |
| Ctrl + Shift + PgUp/PgDown | 切換標(biāo)簽頁的位置 | |
| Ctrl + K <-/-> | 切割窗口位置調(diào)換 |
文件管理
| 快捷鍵 | 作用 |
|---|---|
| Ctrl + N | 新建文件 |
| Ctrl + O | 打開文件 |
| Ctrl + S | 保存文件 |
| Ctrl + Shift + S | 另存為 |
| Ctrl + K S | 保存所有當(dāng)前已經(jīng)打開的文件 |
| Ctrl + F4 | 關(guān)閉當(dāng)前編輯窗口 |
| Ctrl + K Ctrl + W | 關(guān)閉所有編輯窗口 |
| Ctrl + Shift + T | 撤銷最近關(guān)閉的一個(gè)文件編輯窗口 |
| Ctrl + K Enter | 保持開啟 |
| Ctrl + Shift + Tab | 調(diào)出最近打開的文件列表,重復(fù)按會(huì)切換 |
| Ctrl + Tab | 與上面一致,順序不一致 |
| Ctrl + K P | 復(fù)制當(dāng)前打開文件的存放路徑 |
| Ctrl + K R | 打開當(dāng)前編輯文件存放位置【文件管理器】 |
| Ctrl + K O | 在新的編輯器中打開當(dāng)前編輯的文件 |
顯示
| 快捷鍵 | 作用 |
|---|---|
| F11 | 切換全屏模式 |
| Shift + Alt + 1 | 切換編輯布局【目前無效】 |
| Ctrl + =/- | 放大 / 縮小 |
| Ctrl + B | 側(cè)邊欄顯示隱藏 |
| Ctrl + Shift + E | 資源視圖和編輯視圖的焦點(diǎn)切換 |
| Ctrl + Shift + F | 打開全局搜索 |
| Ctrl + Shift + G | 打開Git可視管理 |
| Ctrl + Shift + D | 打開DeBug面板 |
| Ctrl + Shift + X | 打開插件市場(chǎng)面板 |
| Ctrl + Shift + H | 在當(dāng)前文件替換查詢替換 |
| Ctrl + Shift + J | 開啟詳細(xì)查詢 |
| Ctrl + Shift + V | 預(yù)覽Markdown文件【編譯后】 |
| Ctrl + K v | 在邊欄打開渲染后的視圖【新建】 |
調(diào)試
| 快捷鍵 | 作用 |
|---|---|
| F9 | 添加解除斷點(diǎn) |
| F5 | 啟動(dòng)調(diào)試、繼續(xù) |
| F11 / Shift + F11 | 單步進(jìn)入 / 單步跳出 |
| F10 | 單步跳過 |
| Ctrl + K Ctrl + I | 顯示懸浮 |
集成終端
| 快捷鍵 | 作用 |
|---|---|
| Ctrl + ` | 打開集成終端 |
| Ctrl + Shift + ` | 創(chuàng)建一個(gè)新的終端 |
| Ctrl + Shift + C | 復(fù)制所選 |
| Ctrl + Shift + V | 復(fù)制到當(dāng)前激活的終端 |
| Shift + PgUp / PgDown | 頁面上下翻屏 |
| Ctrl + Home / End | 滾動(dòng)到頁面頭部或尾部 |
2.3 如何安裝golang.org\x的包?
類似錯(cuò)誤提示,表示國(guó)內(nèi)使用 go get 安裝 golang 官方包可能會(huì)失敗。
$ go install sourcegraph.com/sqs/goreturns
src\golang.org\x\tools\internal\imports\mod.go:17:2: cannot find package "golang.org/x/mod/module" in any of:
C:\Go\src\golang.org\x\mod\module (from $GOROOT)
D:\jusanban\doc\50-編碼實(shí)現(xiàn)\GO\src\golang.org\x\mod\module (from $GOPATH)
src\golang.org\x\tools\internal\imports\mod.go:18:2: cannot find package "golang.org/x/mod/semver" in any of:
C:\Go\src\golang.org\x\mod\semver (from $GOROOT)
D:\jusanban\doc\50-編碼實(shí)現(xiàn)\GO\src\golang.org\x\mod\semver (from $GOPATH)
其實(shí) golang 在 github 上建立了一個(gè)鏡像庫,如 https://github.com/golang/module 即是 https://golang.org/x/module 的鏡像庫。
獲取 golang.org/x/module 包,其實(shí)只需要以下步驟:
mkdir -p $GOPATH/src/golang.org/x
cd $GOPATH/src/golang.org/x
git clone https://github.com/golang/mod.git
git clone https://github.com/golang/tools.git
其它 golang.org/x 下的包獲取皆可使用該方法。
github國(guó)內(nèi)鏡像下載更快:
git clone https://github.com.cnpmjs.org/golang/mod.git
git clone https://github.com.cnpmjs.org/golang/tools.git
2.4 VS Code下如何顯示文件的函數(shù)列表以及不能顯示時(shí)的解決方法?
1,Shift+Ctl+O(顯示在頂部,不方便查看)

2,顯示大綱(在編輯器左下角顯示,方便查看)
Shift+Ctl+P -> View: Quick Open View -> 大綱(Outline)

3,如果不能顯示則表明是OUTLINE插件未更新到最新。
重新安裝最新的OUTLINE即可。
go get -v github.com/ramya-rao-a/go-outline
說明:
安裝插件:Solidity Visual Developer

在outline可以看到函數(shù)列表:

點(diǎn)擊可以看到各種報(bào)告[函數(shù)調(diào)用關(guān)系圖]:

更多功能詳見:
https://marketplace.visualstudio.com/items?itemName=tintinweb.solidity-visual-auditor