在 VS Code 中使用 Copilot Chat
透過 Visual Studio Code 中的 Copilot Chat,您可以透過聊天提出問題,以取得程式碼建議、增進您對程式碼的理解,甚至設定您的編輯器。不必在文件或線上論壇中搜尋答案,直接在 VS Code 中詢問 Copilot,並立即將建議套用至您的程式碼庫。
Copilot 除了使用聊天來取得建議之外,還可以跨專案中的多個檔案直接進行編輯。在這種情況下,您可以考慮使用 Copilot Edits。您可以輕鬆地將現有的聊天對話移至 Copilot Edits。
如果您還沒有 Copilot 訂閱,您可以註冊 Copilot 免費方案,免費使用 Copilot,並獲得每月完成次數和聊天互動的限制。
在 VS Code 中使用 Copilot Chat
您可以透過幾種方式在 VS Code 中向 Copilot 提交提示,具體取決於您的工作流程。
- 聊天檢視:在側邊擁有 AI 助理,協助您解答問題並提供程式碼建議 (⌃⌘I (Windows、Linux Ctrl+Alt+I))
- Inline Chat:直接從編輯器或整合式終端機啟動行內聊天對話,以取得就地建議 (⌘I (Windows、Linux Ctrl+I))
- 快速聊天:提出快速問題,然後回到您正在執行的工作 (⇧⌥⌘L (Windows、Linux Ctrl+Shift+Alt+L))
您也可以使用 VS Code 標題列中的 Copilot 功能表,開始使用不同的聊天體驗。
提交提示
您可以要求 Copilot Chat 提供程式碼建議、增進您對程式碼的理解、設定專案的偵錯,或協助設定 VS Code。
-
開啟聊天檢視 (⌃⌘I (Windows、Linux Ctrl+Alt+I))
提示若要在編輯器中直接取得行內程式碼建議,請考慮改用編輯器 Inline Chat。
-
在聊天輸入欄位中輸入提示,或選擇其中一個提示建議。一些提示範例
- 詢問有關程式設計和技術概念的問題 (「什麼是鏈結串列?」、「前 10 大熱門 Web 架構」)
- 集思廣益,找出解決程式設計問題的最佳方法 (「如何將驗證新增至我的專案?」)
- 說明其他人的程式碼 (「@workspace /explain」、「這段程式碼的作用是什麼?」)
- 建議程式碼修正 (「@workspace /fix」、「此方法會產生 FileNotFoundException」)
- 產生單元測試案例或程式碼文件 (「@workspace /tests」、「@workspace /doc」)
- 詢問有關 VS Code 設定的問題 (@vscode 我要如何停用迷你地圖?)
如需更多提示範例,請參閱 GitHub 文件中的 Copilot Chat 食譜。
-
檢閱 Copilot 的回應,並在需要時提出後續問題。
回應可能包含文字、程式碼區塊、按鈕、程式碼符號連結、檔案樹狀結構或其他豐富內容。
若要查看 Copilot 用於回應的資源,請在聊天回應中選取 已使用 n 個資源 下拉式選單。您可以透過將內容附加到您的聊天提示,協助 Copilot 提供更相關的回應。
當您持續進行對話時,Copilot 會維護您的聊天訊息和回應的歷程記錄,並在其回應中提供相關的後續問題或命令。
在聊天輸入欄位中輸入 /help
,以取得有關 GitHub Copilot 以及如何與 Copilot Chat 互動的說明。
為您的聊天提示新增內容
Copilot 會嘗試根據您的自然語言聊天提示判斷您問題的意圖和範圍。在聊天回應中,選取 已使用 n 個資源 下拉式選單,以查看 Copilot 用於產生回應的資源。
為了協助 Copilot 為您提供最佳和最相關的答案,請為您的聊天提示新增內容。例如,附加特定檔案、特定程式碼符號、目前的編輯器選取範圍等等。
有幾種方法可以為您的聊天提示新增內容
-
VS Code 會自動將目前作用中的編輯器新增為內容。如果您在編輯器中選取了程式碼區塊,則只會將該選取範圍新增為內容。您可以選取內容項目旁的停用 (眼睛) 圖示,停用新增作用中的編輯器。
-
使用「附加」 圖示 (⌘/ (Windows、Linux Ctrl+/)),然後從「快速選取」中選取內容類型。
提示若要從附件「快速選取」快速新增多個項目,請使用 向上 和 向下 鍵瀏覽清單,使用 向右 鍵將項目新增為內容,然後針對其他項目重複此步驟。
-
將編輯器索引標籤,或檔案或資料夾從「檔案總管」檢視、「搜尋」檢視或編輯器麵包屑拖放到「聊天」檢視。
-
輸入
#
字元以使用聊天變數,您會看到可用的聊天變數清單。例如,您可以使用
#selection
將目前的編輯器選取範圍新增至您的聊天提示、使用#file
從工作區新增特定檔案,或使用#sym
從工作區新增符號。提示輸入
#
並將其用作 IntelliSense 觸發程序,以選取檔案或符號。 -
在「檔案總管」或「搜尋」檢視中的檔案上使用內容功能表 Copilot > 將檔案新增至聊天,或針對編輯器中的文字選取範圍使用 將選取範圍新增至聊天。
這些命令也適用於 VS Code 標題列中的 Copilot 功能表。
如果可以,在您附加檔案時,將會包含檔案的完整內容。如果檔案太大而無法放入內容視窗,則會包含檔案的大綱,其中包含函式及其描述,但不包含實作。如果大綱也太大,則檔案將不會是提示的一部分。
聊天參與者
聊天參與者就像領域專家,他們擁有可以協助您的專業知識。您可以透過在聊天輸入欄位中輸入「@」,然後輸入參與者名稱,來叫用聊天參與者。有幾個內建的聊天參與者,擴充功能也可以貢獻聊天參與者。
若要列出所有已安裝的聊天參與者,請在聊天輸入欄位中輸入 @
。
內建參與者 | 描述 |
---|---|
@workspace |
了解您工作區中的程式碼。使用它來導覽您的程式碼庫、尋找相關的類別、檔案等等。 提示範例
|
@vscode |
了解 VS Code 的功能、設定和 API。 提示範例
|
@terminal |
了解整合式終端機 Shell 及其內容。 提示範例
|
@github |
了解 GitHub 存放庫問題、PR 等,並具備相關技能。也可以使用 Bing API 執行 Web 搜尋。取得有關使用 GitHub 技能的詳細資訊。 提示範例
|
擴充功能貢獻的聊天參與者
您可以從 Visual Studio Code Marketplace 或 GitHub Marketplace 安裝其他聊天參與者。
透過 VS Code 擴充功能貢獻的聊天參與者是用戶端擴充功能,可完整存取 VS Code 擴充功能 API 介面。
透過 GitHub 應用程式貢獻的聊天參與者不會在本機電腦上執行,而且必須明確要求存取您的本機編輯器內容。在您安裝貢獻聊天參與者的 GitHub 應用程式之後,第一次在 VS Code 中 @-提及
參與者時,系統會要求您授權其存取您的本機編輯器內容。
為了保護您的隱私權,您與 GitHub 應用程式的聊天參與者共用編輯器內容的偏好設定會以每個工作區為基礎儲存,除非您選取「允許所有工作區」。
以下是一些貢獻聊天參與者的 VS Code 擴充功能範例。前往 Marketplace 或使用整合式「擴充功能」檢視 (⇧⌘X (Windows、Linux Ctrl+Shift+X)),並依標籤 chat-participant
(tag:chat-participant
) 搜尋。
斜線命令
斜線命令提供特定指示的捷徑,以避免您必須撰寫複雜的提示。若要在提示中使用斜線命令,請輸入 /
字元,然後輸入命令。聊天參與者可以貢獻自己的斜線命令。
例如,@workspace /new Express app with pug and typescript
是產生新工作區並在 TypeScript 中建立新的 Express 應用程式 (使用 Pug 檢視引擎) 的捷徑。
一些常見的內建斜線命令包括
/clear
:開始新的聊天工作階段/help
:取得有關使用 GitHub Copilot 的說明@workspace /explain
(或/explain
):說明選取程式碼的運作方式@workspace /fix
(或/fix
):針對選取程式碼中的問題提出修正建議@workspace /new
(或/new
):為新的工作區或新檔案建立程式碼骨架
若要列出所有可用的斜線命令,請在聊天輸入欄位中輸入 /
。
變更 AI 模型
不同的大型語言模型 (LLM) 是根據不同類型的資料進行訓練,可能具有不同的功能和優勢。透過 Copilot Chat,您可以變更用於產生回應的語言模型。
使用聊天輸入欄位中的模型選擇器來變更目前的模型。
可用的模型清單可能會有所不同,並且會隨著時間推移而變更。請參閱 GitHub Copilot 文件,以取得有關可用語言模型的詳細資訊。
Inline Chat
使用 Inline Chat 提交提示並直接從編輯器內取得程式碼建議,而無需離開您的工作內容。
若要叫出行內編輯器聊天,請在任何檔案中使用 ⌘I (Windows、Linux Ctrl+I) 鍵盤快速鍵。或者,開啟檔案,然後從標題列中的 Copilot 功能表選取 行內編輯器聊天。
Copilot 會在編輯器中與您的程式碼就地顯示程式碼建議。您可以接受 (⌘Enter (Windows、Linux Ctrl+Enter)) 或捨棄 (Escape)。如果您對建議不滿意,可以為您的提示產生新的程式碼建議。
如果您在編輯器中選取了程式碼區塊,Copilot 會將您的問題範圍限定於該選取範圍。
您不限於要求程式碼變更。使用 Inline Chat 提出更多探索性問題,這些問題會在您使用程式碼庫時出現。例如,使用 Explain this piece of code
或 How do I add functionality to do X?
等提示。
將內容附加到您的 Inline Chat 提示,以包含相關的檔案、程式碼符號或其他內容。深入了解將內容新增至您的聊天提示。
聊天檢視
「聊天」檢視是一個專用檢視,在您處理程式碼時保持開啟非常有用,您可以在其中與 Copilot 進行多輪對話。
若要開啟「聊天」檢視,請使用 ⌃⌘I (Windows、Linux Ctrl+Alt+I) 鍵盤快速鍵,或在標題列中的 Copilot 功能表選取 開啟聊天。
根據預設,「聊天」檢視位於「次要側邊欄」中。次要側邊欄 始終位於與「主要側邊欄」相對的位置,因此您可以同時開啟「聊天」檢視以及「主要側邊欄」中的「檔案總管」、「原始檔控制」或其他檢視。
您可以隨時將「聊天」檢視拖曳到另一個位置,甚至將其開啟為編輯器。深入了解 VS Code 中的自訂版面配置。
套用來自聊天的程式碼區塊
聊天回應可能包含一個或多個程式碼區塊。根據語言擴充功能,聊天回應中的程式碼區塊可能支援 IntelliSense,讓您能夠透過將滑鼠游標停留在方法和符號上方來取得相關資訊,或跳至其定義。
若要將程式碼區塊套用至您的程式碼庫,請將滑鼠游標停留在程式碼區塊上方,然後選取 在編輯器中套用 按鈕。Copilot 會嘗試將建議的變更套用至您現有的程式碼。
適用於程式碼區塊的其他動作包括
- 將程式碼區塊插入到目前的游標位置
- 將程式碼區塊複製到剪貼簿
- 將程式碼區塊插入到整合式終端機
- 將程式碼區塊插入到新檔案
如果 Copilot Chat 偵測到程式碼區塊包含 Shell 命令,您可以透過 插入到終端機 (⌃⌥Enter (Windows、Linux Ctrl+Alt+Enter)) 直接在整合式終端機中執行。此選項會建立或開啟作用中的終端機,並插入命令文字,讓您隨時可以執行。
使用 聊天:下一個程式碼區塊 (⌥⌘PageDown (Windows、Linux Ctrl+Alt+PageDown)) 和 聊天:上一個程式碼區塊 (⌥⌘PageUp (Windows、Linux Ctrl+Alt+PageUp)) 在程式碼區塊之間導覽。
您可以使用下列設定控制聊天中程式碼區塊的字型
聊天記錄
您可以隨時在「聊天」檢視中使用 新增聊天 按鈕 (⌃L (Windows、Linux Ctrl+L)) 建立聊天工作階段。
Copilot Chat 會維護您先前聊天工作階段的記錄,您可以透過使用「聊天」檢視中的 顯示聊天... 按鈕,或使用「命令面板」中的 聊天:顯示聊天... 命令來存取這些記錄。
「快速選取」會顯示先前聊天的清單,依最近的時間排序。您可以選取聊天,以在「聊天」檢視中開啟它。
在聊天工作階段中,您可以從該工作階段的對話記錄中移除特定的提示和對應的回應。將滑鼠游標停留在提示上方,然後選取 x 控制項。刪除一個或多個提示可能對於取得更相關的回應很有用。
您可以使用「命令面板」中的 聊天:匯出聊天... 命令,將聊天工作階段的所有提示和回應匯出到 JSON 檔案中。
快速聊天
如果您想要快速詢問 Copilot 問題,而且不想開始完整的「聊天」檢視工作階段或在編輯器中開啟 Inline Chat,則可以使用「快速聊天」下拉式選單。
按下鍵盤上的 ⇧⌥⌘L (Windows、Linux Ctrl+Shift+Alt+L) 即可叫出「快速聊天」。或者,在標題列中的 Copilot 功能表中選取 快速聊天。
如果您想要繼續對話,請使用下拉式選單右上角的 在「聊天」檢視中開啟 按鈕,將「快速聊天」對話升級為完整的「聊天」檢視工作階段。
終端機行內聊天
與編輯器中的 Inline Chat 類似,您可以叫出終端機中的 Copilot Inline Chat,以協助您回答與終端機和 Shell 命令相關的問題。
終端機 Inline Chat 使用 @terminal
聊天參與者,其中包含整合式終端機 Shell 及其內容的內容。例如,您可以詢問「如何安裝 npm 套件」或「列出 src 目錄中前 5 大檔案」等問題。
若要在終端機中啟動 Inline Chat,請在終端機中時按下 ⌘I (Windows、Linux Ctrl+I) 鍵盤快速鍵。
一旦建議命令,請使用 執行 (⌘Enter (Windows、Linux Ctrl+Enter)) 在終端機中執行命令,或使用 插入 (⌥Enter (Windows、Linux Alt+Enter)) 將命令插入到終端機中。
智慧動作
對於幾個常見的案例,您可以使用智慧動作從 Copilot 取得協助,而無需撰寫提示。這些智慧動作的範例適用於任務,例如產生 commit 訊息、產生文件、修正程式碼、說明程式碼或檢閱程式碼變更。
這些智慧動作可在整個 VS Code UI 中使用。例如,您可以從編輯器內容功能表或透過「快速修正」動作存取 Copilot 智慧動作。
在編輯器中,您可以透過選取程式碼區塊、按一下滑鼠右鍵,然後選擇 Copilot 來存取智慧動作。
最強大的智慧動作是 修正 動作,可協助您更正程式碼問題。選取編輯器中的閃爍圖示,然後選擇 使用 Copilot 修正。有對應的 /fix
斜線命令。
同樣地,也有 Copilot > 產生文件 智慧動作 (/doc
斜線命令) 可為您的程式碼產生文件。
使用語音互動
透過 VS Code 中的語音控制功能 (由 VS Code Speech 擴充功能提供),您可以使用語音啟動聊天對話
- 使用您的語音聽寫您的聊天提示
- 使用「Hey Code」語音命令啟動與 Copilot Chat 的語音工作階段
- 透過使用「按住說話」模式加速聊天的語音輸入
深入了解如何在 VS Code 中使用語音互動。
隱私權與透明度
我們強調負責任地使用 AI,尤其是在原始程式碼方面。預設為啟用的 inlineChat.acceptedOrDiscardBeforeSave 設定會在您儲存 Copilot 產生的程式碼之前,要求您確認。
當設定啟用時,檔案儲存作業會等待您接受或捨棄任何擱置中的 Inline Chat 工作階段。這也適用於啟用「自動儲存」時,在 Inline Chat 結束之前,系統會暫時停用「自動儲存」。
若要為私人存放庫啟用更多工作區搜尋功能,我們需要額外的權限。如果我們偵測到我們尚未擁有這些權限,我們會在啟動時要求這些權限。一旦授與,我們就會安全地儲存工作階段以供日後使用。
深入了解 GitHub Copilot 信任中心 中的安全性、隱私權和透明度。
常見問題
我該如何在 Copilot Edits、Inline Chat、「聊天」檢視和「快速聊天」之間做選擇?
下表提供每個介面功能的比較。
功能 | Copilot Edits | 聊天檢視 | Inline Chat | 快速聊天 |
---|---|---|---|---|
接收程式碼建議 | ✅ | ✅ | ✅ | ✅ |
多檔案編輯 | ✅ | ✅* | ✅* | |
在編輯器中預覽程式碼編輯 | ✅ | ✅ | ||
程式碼檢閱流程 | ✅ | |||
復原變更 | ✅ | |||
附加內容 | ✅ | ✅ | ✅ | ✅ |
使用參與者和命令 | ✅ | ✅ | ||
產生 Shell 命令 | ✅ | ✅ | ||
一般用途聊天 | ✅ | ✅ | ✅ |
* 程式碼區塊包含在聊天對話中,需要手動套用至正確的檔案
其他資源
您可以在 GitHub Copilot 文件中閱讀有關 GitHub Copilot 以及如何在 VS Code 中使用它的詳細資訊。
或者查看 YouTube 上的 VS Code Copilot 系列,您可以在其中找到更多入門內容和特定於程式設計的影片,以了解如何搭配 Python、C#、Java、PowerShell、C++ 等使用 Copilot。
下一步
-
開始使用入門級的 Copilot Chat 教學課程。
-
使用 Copilot Edits 跨多個檔案進行編輯。