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 啟用。右鍵單擊數學表示式以複製源表示式。 |
提示
- 使用
#-提及將更多上下文新增到您的聊天提示中。- 使用
/命令和@參與者以獲得更精確和相關的答案。- 具體、簡潔,並提出後續問題以獲得最佳結果。
- 選擇適合您需求的代理:提問、編輯、代理或建立自定義代理。
為提示新增上下文
透過 為聊天提示新增上下文 來獲得更相關的響應。從不同型別的上下文(例如檔案、符號、編輯器選擇、原始碼管理提交、測試失敗等)中進行選擇。
| 操作 | 描述 |
|---|---|
| 新增上下文 | 開啟快速選擇器以選擇與您的聊天提示相關的上下文。從不同型別的上下文(例如工作區檔案、符號、當前編輯器選擇、終端選擇等)中進行選擇。 |
| 拖放檔案 | 將檔案從“資源管理器”或“搜尋”檢視拖放到聊天檢視,或將編輯器選項卡拖放到聊天檢視。 |
| 拖放資料夾 | 將資料夾拖放到聊天檢視,以附加其中的檔案。 |
| 拖放問題 | 將專案從“問題”面板拖放到聊天檢視。 |
#<檔案|資料夾|符號> |
鍵入 #,然後鍵入檔名、資料夾名或符號名,將其新增為聊天上下文。 |
#-提及 |
鍵入 #,然後鍵入 聊天工具,以新增特定型別的上下文或工具。 |
聊天工具
在聊天中使用 工具 來處理使用者請求時完成專門任務。這些任務的示例包括列出目錄中的檔案、編輯工作區中的檔案、執行終端命令、獲取終端輸出等。
VS Code 提供內建工具,您還可以透過 MCP 伺服器 和 擴充套件 來擴充套件聊天功能。瞭解有關 工具型別 的更多資訊。
下表列出了 VS Code 內建工具
| 聊天變數/工具 | 描述 |
|---|---|
#changes |
原始碼管理更改列表。 |
#codebase |
在當前工作區中執行程式碼搜尋,以自動查詢與聊天提示相關的上下文。 |
#createAndRunTask |
在工作區中建立並執行新的 任務。 |
#createDirectory |
在工作區中建立新目錄。 |
#createFile |
在工作區中建立新檔案。 |
#edit (工具集) |
啟用在工作區中進行修改。 |
#editFiles |
對工作區中的檔案應用編輯。 |
#editNotebook |
編輯 Notebook。 |
#extensions |
搜尋並詢問有關 VS Code 擴充套件的問題。例如,“如何開始使用 Python #extensions?” |
#fetch |
從給定的網頁獲取內容。例如,“總結 #fetch code.visualstudio.com/updates。” |
#fileSearch |
使用 glob 模式在工作區中搜索檔案並返回其路徑。 |
#getNotebookSummary |
獲取 Notebook 單元格列表及其詳細資訊。 |
#getProjectSetupInfo |
提供有關腳手架不同型別專案的說明和配置。 |
#getTaskOutput |
獲取執行工作區中 任務 的輸出。 |
#getTerminalOutput |
獲取執行工作區中終端命令的輸出。 |
#githubRepo |
在 GitHub 倉庫中執行程式碼搜尋。例如,“全域性程式碼片段是什麼 #githubRepo microsoft/vscode。” |
#installExtension |
安裝 VS Code 擴充套件。 |
#listDirectory |
列出工作區中目錄的檔案。 |
#new |
腳手架一個新的 VS Code 工作區,預配置除錯和執行配置。 |
#newJupyterNotebook |
根據描述腳手架一個新的 Jupyter Notebook。 |
#newWorkspace |
建立新工作區。 |
#openSimpleBrowser |
開啟內建的簡單瀏覽器並預覽本地部署的 Web 應用程式。 |
#problems |
將工作區問題和“問題”面板中的問題作為上下文新增。在修復程式碼或除錯時很有用。 |
#readFile |
讀取工作區中檔案的內容。 |
#readNotebookCellOutput |
讀取 Notebook 單元格執行的輸出。 |
#runCell |
執行 Notebook 單元格。 |
#runCommands (工具集) |
啟用在終端中執行命令並讀取輸出。 |
#runInTerminal |
在整合終端中執行 shell 命令。 |
#runNotebooks (工具集) |
啟用執行 Notebook 單元格。 |
#runTask |
執行工作區中的現有 任務。 |
#runTasks (工具集) |
啟用在工作區中執行 任務 並讀取輸出。 |
#runSubagent |
在隔離的 子代理上下文 中執行任務。有助於改進主代理執行緒的上下文管理。 |
#runTests |
在工作區中執行 單元測試。 |
#runVscodeCommand |
執行 VS Code 命令。例如,“啟用禪模式 #runVscodeCommand。” |
#search (工具集) |
啟用在當前工作區中搜索檔案。 |
#searchResults |
獲取搜尋檢視中的搜尋結果。 |
#selection |
獲取當前編輯器選擇(僅當選擇了文字時可用)。 |
#terminalLastCommand |
獲取最後執行的終端命令及其輸出。 |
#terminalSelection |
獲取當前終端選擇。 |
#testFailure |
獲取單元測試失敗資訊。在執行和診斷 測試 時很有用。 |
#textSearch |
在檔案中查詢文字。 |
#todos |
透過待辦事項列表跟蹤聊天請求的實現和進度。 |
#usages |
“查詢所有引用”、“查詢實現”和“轉到定義”的組合。 |
#VSCodeAPI |
詢問有關 VS Code 功能和擴充套件開發的問題。 |
斜槓命令
斜槓命令是聊天中特定功能的快捷方式。您可以使用它們快速執行操作,例如修復問題、生成測試或解釋程式碼。
| 斜槓命令 | 描述 |
|---|---|
/doc |
從編輯器內聯聊天生成程式碼文件註釋。 |
/explain |
解釋程式碼塊、檔案或程式設計概念。 |
/fix |
請求修復程式碼塊或解決編譯器或 linting 錯誤。 |
/tests |
為編輯器中的所有方法和函式或僅選定的方法和函式生成測試。 |
/setupTests |
獲取設定程式碼測試框架的幫助。獲取相關測試框架的建議、設定和配置步驟以及 VS Code 測試擴充套件的建議。 |
/clear |
在聊天檢視中開始新的聊天會話。 |
/new |
腳手架一個新的 VS Code 工作區或檔案。使用自然語言描述您需要的專案/檔案的型別,並在建立之前預覽腳手架內容。 |
/newNotebook |
根據您的要求腳手架一個新的 Jupyter Notebook。使用自然語言描述 Notebook 應包含的內容。 |
/search |
為搜尋檢視生成搜尋查詢。使用自然語言描述您要搜尋的內容。 |
/startDebugging |
生成一個 launch.json 除錯配置檔案,並從聊天檢視啟動除錯會話。 |
/<prompt name> |
在聊天中執行 可重用提示。 |
聊天參與者
使用聊天參與者來處理聊天中的特定領域請求。聊天參與者以 @ 作為字首,可用於詢問特定主題的問題。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 聊天中的 規劃代理 在複雜的編碼任務開始之前建立詳細的實現計劃。將批准的計劃移交給實現代理以開始編碼。
| 操作 | 描述 |
|---|---|
| 計劃 Agent | 在聊天檢視中的代理下拉選單中選擇 **規劃** 代理,以建立複雜編碼任務的詳細實現計劃。 |
| 待辦事項列表(實驗性) | 在工具選擇器中啟用 todos 工具,以透過待辦事項列表跟蹤複雜任務的進度。 |
自定義聊天體驗
自定義您的聊天體驗,以生成與您的編碼風格、工具和開發人員工作流程相匹配的響應。在 VS Code 中有幾種方法可以自定義您的聊天體驗:
-
自定義指令:為諸如生成程式碼、執行程式碼審查或生成提交訊息等任務定義通用指南或規則。自定義指令描述 AI 應在何種條件下執行(任務*如何*完成)。
-
可重用提示檔案:為常見任務(如生成程式碼或執行程式碼審查)定義可重用的提示。提示檔案是獨立的提示,您可以直接在聊天中執行。它們描述了要執行的任務(*什麼*應該完成)。
-
自定義代理:定義聊天如何執行、可以使用哪些工具以及它如何與程式碼庫互動。每個聊天提示都在代理的邊界內執行,而無需為每個請求配置工具和指令。
提示
- 定義特定語言的指令,以獲得更準確的每種語言生成程式碼。
- 將指令儲存在您的工作區中,以便與團隊輕鬆共享。
- 為常見任務定義可重用的提示檔案,以節省時間並幫助團隊成員快速上手。
編輯器 AI 功能
在編輯器中編碼時,您可以使用 Copilot 在鍵入時生成內聯建議。呼叫內聯聊天以提問並從 Copilot 獲取幫助,同時保持編碼流暢。例如,請求 Copilot 為函式或方法生成單元測試。有關 內聯建議 和 內聯聊天 的更多資訊。
| 操作 | 描述 |
|---|---|
| 行內建議 | 開始在編輯器中鍵入,並獲取與您的編碼風格匹配並考慮您現有程式碼的 內聯建議。 |
| 程式碼註釋 | 透過在程式碼註釋中編寫說明來提供內聯建議提示。 示例: # 編寫一個帶有 add、subtract 和 multiply 方法的計算器類。使用靜態方法。 |
| ⌘I(Windows、Linux Ctrl+I) | 啟動編輯器內聯聊天,直接從編輯器傳送聊天請求。使用自然語言並引用聊天變數和斜槓命令來提供上下文。 |
| F2 | 在重新命名程式碼中的符號時獲取 AI 驅動的建議。 |
| 上下文選單操作 | 使用編輯器上下文選單訪問常見的 AI 操作,例如解釋程式碼、生成測試、審查程式碼等。右鍵單擊編輯器以開啟上下文選單,然後選擇“生成程式碼”。 |
| 程式碼操作(燈泡) | 選擇編輯器中的程式碼操作(燈泡)以修復程式碼中的 linting 或編譯器錯誤。 |
提示
- 使用有意義的方法或函式名稱,以便更快地獲得更好的內聯建議。
- 選擇一個程式碼塊來限定您的內聯聊天提示的範圍,或透過附加檔案或符號來附加相關上下文。
- 使用編輯器上下文選單選項直接從編輯器訪問常見的 AI 驅動操作。
原始碼管理和問題
使用 AI 分析提交和拉取請求中的更改,併為提交訊息和拉取請求描述提供建議。
| 操作 | 描述 |
|---|---|
#changes |
將當前原始碼管理更改作為上下文新增到您的聊天提示中。 |
| 提交作為上下文 | 將原始碼管理歷史記錄中的提交作為上下文新增到您的聊天提示中。 |
| 提交訊息 | 為原始碼管理提交中的當前更改生成提交訊息。 |
| 合併衝突(實驗性) | 獲取有關使用 AI 解決 Git 合併衝突 的幫助。 |
| 拉取請求描述 | 生成與拉取請求中的更改相對應的拉取請求標題和描述。 |
@github |
在聊天中使用 @github 參與者來詢問有關您的儲存庫中的問題、拉取請求等方面的資訊。有關 可用 GitHub 技能 的更多資訊。示例: @github 我有哪些分配到的未關閉 PR?,@github 顯示 @dancing-mona 最近合併的 pr |
程式碼審查(實驗性)
使用 AI 對程式碼塊進行快速審查,或對工作區中的未提交更改進行審查。審查反饋將顯示為編輯器中的註釋,您可以在其中應用建議。
| 操作 | 描述 |
|---|---|
| 審查選擇(預覽) | 選擇一個程式碼塊,然後從編輯器上下文選單中選擇“生成程式碼”>“審查”以進行快速審查。 |
| 程式碼審查 | 在原始碼管理檢視中選擇“程式碼審查”按鈕,以對所有未提交的更改進行更深入的審查。 |
搜尋和設定
在搜尋檢視中獲取語義相關的搜尋結果,或幫助搜尋設定編輯器中的設定。
| 操作 | 描述 |
|---|---|
| 設定搜尋 | 在設定編輯器中包含語義搜尋結果(workbench.settings.showAISearchToggle)。 |
| 語義搜尋(預覽) | 在搜尋檢視中包含語義搜尋結果(search.searchView.semanticSearchBehavior)。 |
生成測試
VS Code 可以使用聊天中的斜槓命令為程式碼庫中的函式和方法生成測試。斜槓命令是聊天中常用任務的簡寫表示法。鍵入 / 後跟命令名稱即可使用斜槓命令。
| 操作 | 描述 |
|---|---|
/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 可以透過生成專案結構的腳手架來幫助您建立新專案,或者根據您的要求生成 Notebook。
| 操作 | 描述 |
|---|---|
| 代理 | 使用 代理 並使用自然語言提示來建立新專案或檔案。例如,建立一個 Svelte Web 應用程式來跟蹤我的任務。 |
/new |
在聊天檢視中使用 /new 命令來腳手架新專案或新檔案。使用自然語言描述您需要的專案/檔案的型別,並在建立之前預覽腳手架內容。示例: /new 使用 typescript 和 svelte 的 Express 應用 |
/newNotebook |
在聊天檢視中使用 /newNotebook 命令根據您的要求生成新的 Jupyter Notebook。使用自然語言描述 Notebook 應包含的內容。示例: /newNotebook 獲取人口普查資料並用 Seaborn 預覽關鍵見解。 |
終端
獲取有關 shell 命令以及在終端中執行命令時如何解決錯誤的幫助。
| 操作 | 描述 |
|---|---|
| ⌘I(Windows、Linux Ctrl+I) | 啟動終端內聯聊天,以使用自然語言詢問有關 shell 命令和終端的問題。 示例: 這臺機器有多少個核心? |
@terminal |
在聊天檢視中使用 @terminal 參與者來詢問有關整合終端或 shell 命令的問題。示例: @terminal 列出此工作區中 5 個最大的檔案 |
@terminal /explain |
在聊天檢視中使用 /explain 命令來解釋終端中的內容。示例: @terminal /explain top shell 命令 |
Python 和 Notebook 支援
您可以使用聊天來幫助您完成 Python 程式設計任務,包括在原生 Python REPL 和 Jupyter Notebook 中。
| 操作 | 描述 |
|---|---|
| 生成 ⌘I(Windows、Linux Ctrl+I) |
在 Notebook 中啟動內聯聊天以生成程式碼塊或 Markdown 塊。 |
# |
將 Jupyter 核心中的變數附加到您的聊天提示中,以獲得更相關的響應。 |
| 原生 REPL + ⌘I (Windows、Linux Ctrl+I) | 在原生 Python REPL 中啟動內聯聊天並執行生成的命令。 |
| ⌃⌘I(Windows、Linux Ctrl+Alt+I) | 開啟 **聊天檢視** 並使用代理進行 Notebook 編輯。 |
/newNotebook |
在聊天檢視中使用 /newNotebook 命令根據您的要求生成新的 Jupyter Notebook。使用自然語言描述 Notebook 應包含的內容。示例: /newNotebook 獲取人口普查資料並用 Seaborn 預覽關鍵見解。 |