VS Code 中的 GitHub Copilot 速查表
Visual Studio Code 中的 GitHub Copilot 提供 AI 驅動的功能,幫助您更快、更輕鬆地編寫程式碼。本速查表簡要概述了 Visual Studio Code 中 GitHub Copilot 的功能。
如果你還沒有 Copilot 訂閱,可以透過註冊 Copilot 免費計劃 免費使用 Copilot,並獲得每月限量的補全和聊天互動次數。
基本鍵盤快捷鍵
- ⌃⌘I (Windows、Linux 為 Ctrl+Alt+I) - 開啟聊天檢視
- ⌘I (Windows、Linux 為 Ctrl+I) - 在聊天檢視中輸入語音聊天提示
- ⌘N (Windows、Linux 為 Ctrl+N) - 在聊天檢視中開始新的聊天會話
- ⇧⌘I (Windows 為 Ctrl+Shift+I, Linux 為 Ctrl+Shift+Alt+I) - 切換到代理模式
- ⌘I (Windows、Linux 為 Ctrl+I) - 在編輯器或終端中開始行內聊天
- ⌘I (Windows、Linux 為 Ctrl+I) (按住) - 開始行內語音聊天
- Tab - 接受行內建議或導航到下一個編輯建議
- Escape - 忽略行內建議
在 VS Code 中訪問 AI
-
使用自然語言開始聊天對話
- 聊天檢視 (⌃⌘I (Windows、Linux 為 Ctrl+Alt+I)):在輔助側邊欄中保持持續的聊天對話
- 在編輯器或終端中進行行內聊天 (⌘I (Windows、Linux 為 Ctrl+I)):在工作流程中提問
- 快速聊天 (⇧⌥⌘L (Windows、Linux 為 Ctrl+Shift+Alt+L)):快速提問,不離開當前任務
-
編輯器中的 AI
- 程式碼補全:在您輸入時獲取建議,按 Tab 接受建議
- 編輯上下文選單操作:訪問常見的 AI 操作,如解釋或修復程式碼、生成測試或審查選定的文字
- 程式碼操作:獲取編輯器程式碼操作(燈泡圖示)以修復 linting 和編譯器錯誤
-
整個 VS Code 中的特定任務智慧操作
- 生成提交訊息和拉取請求的標題與描述
- 修復測試錯誤
- 語義化檔案搜尋建議
VS Code 中的聊天體驗
開始自然語言聊天對話以獲取編碼任務的幫助。例如,請求解釋程式碼塊或程式設計概念、重構一段程式碼或實現新功能。獲取更多關於使用 Copilot Chat 的資訊。
操作 | 描述 |
---|---|
⌃⌘I (Windows、Linux 為 Ctrl+Alt+I) | 在輔助側邊欄中開啟聊天檢視。 |
⌘I (Windows、Linux 為 Ctrl+I) | 開始行內聊天,在編輯器或終端中開啟聊天。 |
⇧⌥⌘L (Windows、Linux 為 Ctrl+Shift+Alt+L) | 開啟快速聊天,不中斷您的工作流程。 |
⌘N (Windows、Linux 為 Ctrl+N) | 在聊天檢視中開始新的聊天會話。 |
在聊天檢視中切換不同的聊天模式。 | |
⌥⌘. (Windows、Linux 為 Ctrl+Alt+.) | 顯示模型選擇器以為聊天選擇不同的 AI 模型。 |
新增上下文... |
將不同型別的上下文附加到您的聊天提示。 |
/ -命令 |
使用斜槓命令執行常見任務或呼叫可重用的聊天提示。 |
# -提及 |
引用常用工具或聊天變數以在您的提示中提供上下文。 |
@ -提及 |
引用聊天參與者來處理特定領域請求。 |
編輯 () | 編輯之前的聊天提示並撤銷更改。 |
歷史記錄 () | 訪問您的聊天會話歷史記錄。 |
語音 () | 透過語音(語音聊天)輸入聊天提示。聊天響應會被朗讀出來。 |
KaTeX | 在聊天響應中渲染數學方程式。透過 chat.math.enabled 啟用。 |
提示
- 使用
#
-提及為您的聊天提示新增更多上下文。- 使用
/
命令和@
參與者以獲得更精確和相關的答案。- 具體、簡潔,並提出後續問題以獲得最佳結果。
- 選擇適合您需求的聊天模式:提問、編輯、代理或建立自定義模式。
為您的提示新增上下文
透過為您的聊天提示提供上下文來獲得更相關的響應。從不同型別的上下文中選擇,例如檔案、符號、編輯器選擇、原始碼管理提交、測試失敗等。
操作 | 描述 |
---|---|
新增上下文 | 開啟快速選擇器為您的聊天提示選擇相關上下文。從不同型別的上下文中選擇,例如工作區檔案、符號、當前編輯器選擇、終端選擇等。 |
拖放檔案 | 從資源管理器或搜尋檢視中拖放檔案,或將編輯器選項卡拖到聊天檢視上。 |
拖放資料夾 | 將資料夾拖放到聊天檢視上以附加其中的檔案。 |
拖放問題 | 從問題面板中拖放一項。 |
#<檔案|資料夾|符號> |
輸入 # ,後跟檔名、資料夾名或符號名,將其新增為聊天上下文。 |
`#-提及 | 輸入 # ,後跟一個聊天工具以新增特定的上下文型別或工具。 |
聊天工具
在處理使用者請求時,在聊天中使用工具來完成專門的任務。這些任務的例子包括列出目錄中的檔案、編輯工作區中的檔案、執行終端命令、獲取終端輸出等。可以選擇內建工具或來自 MCP 伺服器和擴充套件的工具。
下表列出了 VS Code 內建的工具
聊天變數/工具 | 描述 |
---|---|
#changes |
原始碼管理變更列表。 |
#codebase |
在當前工作區中執行程式碼搜尋,自動為聊天提示找到相關上下文。 |
#createAndRunTask |
在工作區中建立並執行新的任務。 |
#createDirectory |
在工作區中建立一個新目錄。 |
#createFile |
在工作區中建立一個新檔案。 |
#edit (工具集) |
允許在工作區中進行修改。 |
#editFiles |
對工作區中的檔案應用編輯。 |
#editNotebook |
對筆記本進行編輯。 |
#extensions |
搜尋並詢問有關 VS Code 擴充套件的問題。例如,“如何開始使用 Python #extensions?” |
#fetch |
從給定的網頁獲取內容。例如,“總結 #fetch code.visualstudio.com/updates。” |
#fileSearch |
使用 glob 模式在工作區中搜索檔案並返回其路徑。 |
#findTestFiles |
在工作區中定位測試檔案。 |
#getNotebookSummary |
獲取筆記本單元格及其詳細資訊的列表。 |
#getProjectSetupInfo |
為搭建不同型別的專案提供指令和配置。 |
#getTaskOutput |
獲取在工作區中執行任務的輸出。 |
#getTerminalOutput |
獲取在工作區中執行終端命令的輸出。 |
#githubRepo |
在 GitHub 倉庫中執行程式碼搜尋。例如,“什麼是全域性程式碼片段 #githubRepo microsoft/vscode。” |
#installExtension |
安裝 VS Code 擴充套件。 |
#listDirectory |
列出工作區中目錄的檔案。 |
#new |
搭建一個新的 VS Code 工作區,預配置了除錯和執行配置。 |
#newJupyterNotebook |
根據描述搭建一個新的 Jupyter 筆記本。 |
#newWorkspace |
建立一個新工作區。 |
#openSimpleBrowser |
開啟內建的簡單瀏覽器並預覽本地部署的 Web 應用。 |
#problems |
將問題面板中的工作區問題新增為上下文。在修復程式碼或除錯時很有用。 |
#readFile |
讀取工作區中檔案的內容。 |
#readNotebookCellOutput |
讀取筆記本單元格執行的輸出。 |
#runCell |
執行一個筆記本單元格。 |
#runCommands (工具集) |
允許在終端中執行命令並讀取輸出。 |
#runInTerminal |
在整合終端中執行 shell 命令。 |
#runNotebooks (工具集) |
允許執行筆記本單元格。 |
#runTask |
在工作區中執行現有的任務。 |
#runTasks (工具集) |
允許在工作區中執行任務並讀取輸出。 |
#runTests |
在工作區中執行單元測試。 |
#runVscodeCommand |
執行 VS Code 命令。例如,“啟用禪模式 #runVscodeCommand。” |
#search (工具集) |
允許在當前工作區中搜索檔案。 |
#searchResults |
從搜尋檢視獲取搜尋結果。 |
#selection |
獲取當前編輯器的選擇內容(僅在有文字被選中時可用)。 |
#terminalLastCommand |
獲取最後執行的終端命令及其輸出。 |
#terminalSelection |
獲取當前終端的選擇內容。 |
#testFailure |
獲取單元測試失敗資訊。在執行和診斷測試時很有用。 |
#textSearch |
在檔案中查詢文字。 |
#todos |
在處理聊天請求時管理和跟蹤待辦事項(需要啟用 chat.todoListTool.enabled)。 |
#usages |
“查詢所有引用”、“查詢實現”和“轉到定義”的組合。 |
#VSCodeAPI |
詢問有關 VS Code 功能和擴充套件開發的問題。 |
斜槓命令
斜槓命令是聊天中特定功能的快捷方式。您可以使用它們快速執行操作,如修復問題、生成測試或解釋程式碼。
斜槓命令 | 描述 |
---|---|
/docs |
在編輯器行內聊天中生成程式碼文件註釋。 |
/explain |
解釋程式碼塊、檔案或程式設計概念。 |
/fix |
請求 Copilot 修復程式碼塊或解決編譯器或 linting 錯誤。 |
/help |
獲取有關在 VS Code 中使用聊天的幫助。 |
/tests |
為編輯器中的全部或僅選定的方法和函式生成測試。 |
/setupTests |
獲取設定程式碼測試框架的幫助。獲取相關測試框架的建議、設定和配置步驟以及 VS Code 測試擴充套件的建議。 |
/clear |
在聊天檢視中開始新的聊天會話。 |
/new |
搭建一個新的 VS Code 工作區或檔案。使用自然語言描述您需要的專案/檔案型別,並在建立前預覽搭建的內容。 |
/newNotebook |
根據您的要求搭建一個新的 Jupyter 筆記本。使用自然語言描述筆記本應包含的內容。 |
/search |
為搜尋檢視生成搜尋查詢。使用自然語言描述您想要搜尋的內容。 |
/startDebugging |
生成一個 launch.json 除錯配置檔案並從聊天檢視開始除錯會話。 |
/<提示檔名> |
在聊天中執行可重用的提示檔案。 |
聊天參與者
使用聊天參與者處理聊天中的特定領域請求。聊天參與者以 @
為字首,可用於詢問特定主題的問題。VS Code 提供了內建的聊天參與者,如 @github
、@terminal
和 @vscode
,擴充套件可以提供額外的參與者。
聊天參與者 | 描述 |
---|---|
@github |
使用 @github 參與者詢問有關 GitHub 倉庫、問題、拉取請求等問題。獲取更多關於可用的 GitHub 技能的資訊。示例: @github 分配給我的所有開放 PR 是什麼? , @github 顯示 @dancing-mona 最近合併的 PR |
@terminal |
使用 @terminal 參與者詢問有關整合終端或 shell 命令的問題。示例: @terminal 列出此工作區中最大的 5 個檔案 |
@vscode |
使用 @vscode 參與者詢問有關 VS Code 功能、設定和 VS Code 擴充套件 API 的問題。示例: @vscode 如何啟用自動換行? |
@workspace |
使用 @workspace 參與者詢問有關當前工作區的問題。示例: @workspace 身份驗證是如何實現的? |
代理模式
透過聊天代理模式,您可以使用自然語言指定一個高階任務,讓 AI 自主地對請求進行推理,規劃所需的工作,並將更改應用到您的程式碼庫中。代理模式結合使用程式碼編輯和工具呼叫來完成您指定的任務。在處理您的請求時,它會監控編輯和工具的結果,並迭代解決出現的任何問題。
操作 | 描述 |
---|---|
⇧⌘I (Windows 為 Ctrl+Shift+I, Linux 為 Ctrl+Shift+Alt+I) | 在聊天檢視中切換到代理模式 |
工具 () | 配置代理模式下可用的工具。從內建工具、MCP 伺服器和擴充套件提供的工具中選擇。 |
自動批准工具 (實驗性) | 在代理模式下啟用所有工具的自動批准 (chat.tools.autoApprove)。 |
自動批准終端命令 (實驗性) | 在代理模式下啟用終端命令的自動批准 (chat.tools.terminal.autoApprove)。 |
MCP | 配置 MCP 伺服器,用額外的功能和工具擴充套件代理模式。 |
提示
- 向代理模式新增額外的工具以擴充套件其功能。
- 配置自定義聊天模式以定義代理模式的執行方式,例如實現一個只讀的規劃模式。
- 定義自定義指令以指導代理模式如何生成和結構化程式碼。
自定義您的聊天體驗
自定義您的聊天體驗以生成符合您的編碼風格、工具和開發工作流程的響應。在 VS Code 中有幾種方法可以自定義您的聊天體驗
-
自定義指令:為生成程式碼、執行程式碼審查或生成提交訊息等任務定義通用準則或規則。自定義指令描述了 AI 應在何種條件下操作(如何完成任務)。
-
可重用提示檔案:為生成程式碼或執行程式碼審查等常見任務定義可重用的提示。提示檔案是獨立的提示,您可以直接在聊天中執行。它們描述了要執行的任務(什麼應該被完成)。
-
聊天模式:定義聊天的執行方式、可使用的工具以及與程式碼庫的互動方式。每個聊天提示都在聊天模式的範圍內執行,無需為每個請求配置工具和指令。
提示
- 定義特定於語言的指令,以獲得每種語言更準確的生成程式碼。
- 將您的指令儲存在工作區中,以便輕鬆與團隊共享。
- 為常見任務定義可重用的提示檔案,以節省時間並幫助團隊成員快速上手。
編輯器 AI 功能
當您在編輯器中編碼時,可以使用 Copilot 在您輸入時生成程式碼補全。呼叫行內聊天來提問並從 Copilot 獲得幫助,同時保持在編碼流程中。例如,請求 Copilot 為函式或方法生成單元測試。獲取有關程式碼補全和行內聊天的更多資訊。
操作 | 描述 |
---|---|
程式碼補全 | 在編輯器中開始輸入,即可獲得符合您的編碼風格並考慮您現有程式碼的程式碼建議。 |
程式碼註釋 | 透過在程式碼註釋中編寫指令來提供程式碼補全提示。 示例: # 編寫一個計算器類,包含加、減、乘方法。使用靜態方法。 |
⌘I (Windows、Linux 為 Ctrl+I) | 開始編輯器行內聊天,直接從編輯器傳送聊天請求。使用自然語言並引用聊天變數和斜槓命令來提供上下文。 |
F2 | 在重新命名程式碼中的符號時獲得 AI 驅動的建議。 |
上下文選單操作 | 使用編輯器上下文選單訪問常見的 AI 操作,例如解釋程式碼、生成測試、審查程式碼等。在編輯器中右鍵單擊以開啟上下文選單並選擇生成程式碼。 |
程式碼操作(燈泡) | 在編輯器中選擇程式碼操作(燈泡圖示)以修復程式碼中的 linting 或編譯器錯誤。 |
提示
- 使用有意義的方法或函式名,以更快地獲得更好的程式碼補全。
- 選擇一個程式碼塊來限定您的行內聊天提示範圍,或透過附加檔案或符號來附加相關上下文。
- 使用編輯器上下文選單選項直接從編輯器訪問常見的 AI 驅動操作。
原始碼管理和問題
使用 AI 分析您的提交和拉取請求中的更改,併為提交訊息和拉取請求描述提供建議。
操作 | 描述 |
---|---|
#changes |
將當前的原始碼管理更改作為上下文新增到您的聊天提示中。 |
提交作為上下文 | 將原始碼管理歷史記錄中的一次提交作為上下文新增到您的聊天提示中。 |
提交訊息 | 為原始碼管理提交中的當前更改生成提交訊息。 |
拉取請求描述 | 生成與您的拉取請求中的更改相對應的拉取請求標題和描述。 |
@github |
在聊天中使用 @github 參與者來詢問有關您倉庫中的問題、拉取請求等。獲取更多關於可用的 GitHub 技能的資訊。示例: @github 分配給我的所有開放 PR 是什麼? , @github 顯示 @dancing-mona 最近合併的 PR |
審查程式碼(實驗性)
使用 AI 對程式碼塊進行快速審查,或對工作區中未提交的更改進行審查。審查反饋會以註釋的形式顯示在編輯器中,您可以在其中應用建議。
操作 | 描述 |
---|---|
審查選定內容 (預覽) | 選擇一個程式碼塊,然後從編輯器上下文選單中選擇生成程式碼 > 審查以進行快速審查。 |
程式碼審查 | 在原始碼管理檢視中選擇程式碼審查按鈕,對所有未提交的更改進行更深入的審查。 |
搜尋和設定
在搜尋檢視中獲取語義相關的搜尋結果,或在設定編輯器中幫助搜尋設定。
操作 | 描述 |
---|---|
設定搜尋 | 在設定編輯器中包含語義搜尋結果 (workbench.settings.showAISearchToggle)。 |
語義搜尋 (預覽) | 在搜尋檢視中包含語義搜尋結果 (search.searchView.semanticSearchBehavior)。 |
生成測試
Copilot 可以為您的程式碼庫中的函式和方法生成測試。獲取更多關於聊天中的斜槓命令的資訊。
操作 | 描述 |
---|---|
/tests |
為編輯器中的全部或僅選定的方法和函式生成測試。生成的測試會附加到現有的測試檔案中,或者會建立一個新的測試檔案。 |
/setupTests |
獲取設定程式碼測試框架的幫助。獲取相關測試框架的建議、設定和配置步驟以及 VS Code 測試擴充套件的建議。 |
/fixTestFailure |
向 Copilot 請求有關如何修復失敗測試的建議。 |
測試覆蓋率 (實驗性) | 為尚未被測試覆蓋的函式和方法生成測試。獲取更多資訊。 |
提示
- 提供有關要使用的測試框架或庫的詳細資訊。
除錯和修復問題
使用 Copilot 幫助修復編碼問題,並獲得在 VS Code 中配置和啟動除錯會話的幫助。
操作 | 描述 |
---|---|
/fix |
向 Copilot 請求有關如何修復程式碼塊或如何解決程式碼中任何編譯器或 linting 錯誤的建議。例如,幫助修復未解析的 Node.js 包名。 |
/fixTestFailure |
向 Copilot 請求有關如何修復失敗測試的建議。 |
/startDebugging (實驗性) |
生成一個 launch.json 除錯配置檔案並從聊天檢視開始除錯會話。 |
copilot-debug 命令 |
幫助您除錯程式的終端命令。在執行命令前加上字首,為其啟動除錯會話(例如,copilot-debug python foo.py )。 |
提示
- 提供有關您需要的修復型別的附加資訊,例如最佳化記憶體消耗或效能。
- 注意編輯器中的 Copilot 程式碼操作,它們會提示修復程式碼中問題的建議。
搭建新專案
Copilot 可以透過生成專案結構的腳手架,或根據您的要求生成筆記本,來幫助您建立新專案。
操作 | 描述 |
---|---|
代理模式 | 使用代理模式並使用自然語言提示來建立新專案或檔案。例如,建立一個 svelte 網頁應用程式來跟蹤我的任務 。 |
/new |
在聊天檢視中使用 /new 命令來搭建新專案或新檔案。使用自然語言描述您需要的專案/檔案型別,並在建立前預覽搭建的內容。示例: /new 使用 typescript 和 svelte 的 Express 應用 |
/newNotebook |
在聊天檢視中使用 /newNotebook 命令根據您的要求生成新的 Jupyter 筆記本。使用自然語言描述筆記本應包含的內容。示例: /newNotebook 獲取人口普查資料並用 Seaborn 預覽關鍵見解 。 |
終端
獲取有關 shell 命令的幫助以及如何在終端中執行命令時解決錯誤。
操作 | 描述 |
---|---|
⌘I (Windows、Linux 為 Ctrl+I) | 開始終端行內聊天,使用自然語言詢問有關 shell 命令和終端的問題。 示例: 這臺機器有多少個核心? |
@terminal |
在聊天檢視中使用 @terminal 參與者詢問有關整合終端或 shell 命令的問題。示例: @terminal 列出此工作區中最大的 5 個檔案 |
@terminal /explain |
在聊天檢視中使用 /explain 命令來解釋終端中的某些內容。示例: @terminal /explain top shell 命令 |
Python 和筆記本支援
您可以使用聊天來幫助您在原生 Python REPL 和 Jupyter 筆記本中完成 Python 程式設計任務。
操作 | 描述 |
---|---|
生成 ⌘I (Windows、Linux 為 Ctrl+I) |
在筆記本中開始行內聊天以生成程式碼塊或 Markdown 塊。 |
# |
在您的聊天提示中附加來自 Jupyter 核心的變數以獲得更相關的響應。 |
原生 REPL + ⌘I (Windows、Linux 為 Ctrl+I) | 在原生 Python REPL 中開始行內聊天並執行生成的命令。 |
⌃⌘I (Windows、Linux 為 Ctrl+Alt+I) | 開啟聊天檢視並使用編輯或代理模式對筆記本進行編輯。 |
/newNotebook |
在聊天檢視中使用 /newNotebook 命令根據您的要求生成新的 Jupyter 筆記本。使用自然語言描述筆記本應包含的內容。示例: /newNotebook 獲取人口普查資料並用 Seaborn 預覽關鍵見解 。 |