VS Code 中 GitHub Copilot 的內嵌建議

VS Code 中的 GitHub Copilot 提供 AI 驅動的內嵌建議,能在您輸入時完成程式碼、註解、測試等內容。內嵌建議適用於多種程式語言和框架。它是 VS Code 中多種 AI 介面之一,其他介面還包括用於自主多檔案任務的代理程式聊天以及智慧動作

您可能會體驗到來自 Copilot 的兩種內嵌建議,兩者都會符合您的程式設計風格並考量您現有的程式碼。

  • 幽靈文字建議 (Ghost text suggestions):在編輯器中開始輸入,Copilot 會在您目前的游標位置提供灰色的幽靈文字建議。

  • 下次編輯建議 (Next edit suggestions):透過 Copilot 下次編輯建議 (又稱為 Copilot NES) 預測您的下一個程式碼編輯。根據您正在進行的編輯,NES 不僅會預測您想要進行下一個編輯的位置,還會預測該編輯應該是什麼。

先決條件

  • 您的機器上已安裝 Visual Studio Code。請按照這些步驟來設定 VS Code
  • 擁有 GitHub Copilot 訂閱權限。請按照這些步驟來設定 GitHub Copilot。您可以設定 Copilot Free 以獲得每月的內嵌建議額度和 AI 點數。

幽靈文字建議

取得您的首項建議

當您輸入時,Copilot 會提供灰色的幽靈文字建議:有時是完成目前這一行,有時則是完整的程式碼區塊。

  1. 開啟您選擇的程式語言檔案並開始輸入。您應該會在輸入時看到來自 Copilot 的內嵌建議。

    以下範例顯示 Copilot 如何使用灰色的幽靈文字來建議 calculateDaysBetweenDates JavaScript 函式的實作

    JavaScript ghost text suggestion.

  2. 按下 Tab 鍵即可接受建議。

    若要部分接受建議,請使用 ⌘→ (Windows, Linux Ctrl+Right) 鍵盤快速鍵來接受建議的下一個單字或下一行。

替代建議

對於任何給定的輸入,Copilot 可能會提供多個替代建議。您可以將滑鼠游標懸停在建議上以查看其他建議。

Hovering over inline suggestions enables you to select from multiple suggestions

透過程式碼註解產生建議

與其依賴 Copilot 提供建議,您也可以透過程式碼註解來提供您預期程式碼的提示。例如,您可以指定要使用的演算法類型或概念(例如:「使用遞迴」或「使用單例模式」),或指定要加入類別的方法和屬性。

以下範例顯示如何指示 Copilot 在 TypeScript 中建立一個代表學生的類別,並提供有關方法和屬性的資訊

Use code comments to let Copilot generate a Student class in TypeScript with properties and methods.

下次編輯建議

幽靈文字建議在自動完成程式碼片段方面表現出色。但由於大部分的程式設計活動都是在編輯現有程式碼,因此內嵌建議自然演進為協助編輯工作(無論是在游標處還是較遠的位置)是必然的。編輯通常不是孤立進行的——在不同情況下需要進行哪些編輯是有邏輯流程的。下次編輯建議 (Copilot NES) 正是這種演進的結果。

根據您正在進行的編輯,下次編輯建議會預測您想要進行下一個編輯的位置以及該編輯內容。Copilot NES 協助您保持工作流程,建議與您目前工作相關的未來變更,您可以透過 Tab 鍵快速導覽並接受 Copilot 的建議。根據潛在變更的範圍,建議可能會跨越單一符號、整行或多行。

若要開始使用 Copilot NES,請啟用 VS Code 設定 github.copilot.nextEditSuggestions.enabled 在 VS Code 中開啟 在 VS Code Insiders 中開啟 此設定由組織層級管理。請聯絡您的管理員進行變更。

導覽並接受編輯建議

您可以使用 Tab 鍵快速導覽至建議的程式碼變更,節省尋找下一個相關編輯的時間(無需手動搜尋檔案或參考)。之後,您可以使用 Tab 鍵再次接受建議。

側邊欄 (gutter) 中的箭號表示是否有可用的編輯建議。箭號顯示了下一個編輯建議相對於您目前游標位置的位置。

您可以將滑鼠懸停在箭號上以瀏覽編輯建議選單,其中包含鍵盤快速鍵和設定組態

Copilot NES gutter menu expanded

重要

如果您是 VS Code vim 擴充功能的使用者,請使用該擴充功能的最新版本,以避免與 NES 產生任何按鍵繫結衝突。

減少編輯建議帶來的干擾

預設情況下,編輯建議由側邊欄箭號指示,並在編輯器中顯示程式碼變更。啟用 editor.inlineSuggest.edits.showCollapsed 在 VS Code 中開啟 在 VS Code Insiders 中開啟 設定,即可讓程式碼變更僅在您按下 Tab 鍵導覽至該建議,或將滑鼠懸停在側邊欄箭號上時才顯示。或者,將滑鼠懸停在側邊欄箭號上並從選單中選擇顯示摺疊 (Show Collapsed) 選項。

下次編輯建議的使用案例

捕捉並更正錯誤

  • Copilot 有助於處理簡單的錯誤,例如拼字錯誤。 它會針對遺失或對調的字母提出修正建議,例如 cont x = 5conts x = 5,正確的應該是 const x = 5

    NES fixing a typo from "conts" to "const"

  • Copilot 也能協助處理更具挑戰性的邏輯錯誤,例如反向的三元運算式

    NES fixing a ternary logic mistake

    或是應該使用 && 而非 || 的比較

    NES fixing an if statement mistake

變更意圖

  • Copilot 會針對程式碼的其餘部分建議與新變更意圖相符的修改。 例如,將類別從 Point 變更為 Point3D 時,Copilot 會建議在類別定義中新增 z 變數。接受變更後,Copilot NES 會接著建議將 z 新增至距離計算中

    NES gif for updating Point to Point3D

重構

  • 在檔案中重新命名變數一次,Copilot 將建議在其他所有地方進行更新。 如果您使用新的名稱或命名模式,Copilot 會建議以相同方式更新後續的程式碼。

    Copilot NES suggesting change after updating function name

  • 符合程式碼風格。在複製貼上某些程式碼後,Copilot 會建議如何調整它以符合貼上處目前的程式碼。

啟用或停用內嵌建議

您可以啟用或停用所有語言或僅針對特定語言的內嵌建議。若要啟用或停用內嵌建議,請選取狀態列中的 Copilot 選單,然後勾選或取消勾選選項以啟用或停用內嵌建議。針對特定語言停用內嵌建議的選項,取決於目前編輯器中的語言。

Screenshot of the Copilot menu in the Status Bar with Snooze and Cancel Snooze buttons.

或者,修改設定編輯器中的 github.copilot.enable 在 VS Code 中開啟 在 VS Code Insiders 中開啟 設定。為您想要啟用或停用內嵌建議的每種語言新增一個項目。若要為所有語言啟用或停用內嵌建議,請將 * 的值設為 truefalse

若要暫時停用編輯器中的所有內嵌建議,請選取狀態列中的 Copilot 選單,然後選擇暫停 (Snooze) 按鈕,將暫停時間增加五分鐘。若要恢復內嵌建議,請在 Copilot 選單中選擇取消暫停 (Cancel Snooze) 按鈕。

或者,使用指令選擇區 (Command Palette) 中的暫停內嵌建議 (Snooze Inline Suggestions)取消暫停內嵌建議 (Cancel Snooze Inline Suggestions) 指令。

變更用於建議的 AI 模型

不同的大型語言模型 (LLM) 是基於不同類型的資料進行訓練,可能具有不同的能力和優勢。深入了解如何在 VS Code 中選擇不同的 AI 語言模型

若要變更編輯器中用於產生幽靈文字建議的語言模型

  1. 開啟指令選擇區 (F1)。

  2. 輸入 change completions model 並選取 GitHub Copilot: Change Completions Model 指令。

  3. 在下拉式選單中,選取您要使用的模型。

注意

可用模型的清單可能會隨時間而變動。模型選擇器可能不會總是顯示多個模型;若我們發布預覽模型和其他內嵌建議模型,它們將會在那裡提供。如果您是 Copilot Business 或 Enterprise 的使用者,您的管理員需要透過在 GitHub.com 的 Copilot 原則設定中選取 Editor Preview Features,為您的組織啟用特定模型。

訣竅與技巧

內容脈絡

為了提供您相關的內嵌建議,Copilot 會查看您編輯器中目前開啟的檔案,以分析上下文並建立適當的建議。在使用 Copilot 時,在 VS Code 中保持開啟相關檔案有助於設定此上下文,並讓 Copilot 更全面地了解您的專案。

設定

幽靈文字建議設定

  • github.copilot.enable 在 VS Code 中開啟 在 VS Code Insiders 中開啟 - 啟用或停用所有或特定語言的內嵌完成。

  • editor.inlineSuggest.fontFamily 在 VS Code 中開啟 在 VS Code Insiders 中開啟 - 設定內嵌完成的字型。

  • editor.inlineSuggest.showToolbar 在 VS Code 中開啟 在 VS Code Insiders 中開啟 - 啟用或停用內嵌完成的工具列。

  • editor.inlineSuggest.syntaxHighlightingEnabled 在 VS Code 中開啟 在 VS Code Insiders 中開啟 - 啟用或停用內嵌完成的語法突顯。

下次編輯建議設定

  • github.copilot.nextEditSuggestions.enabled 在 VS Code 中開啟 在 VS Code Insiders 中開啟 此設定由組織層級管理。請聯絡您的管理員進行變更。 - 啟用 Copilot 下次編輯建議 (Copilot NES)。

  • editor.inlineSuggest.edits.allowCodeShifting 在 VS Code 中開啟 在 VS Code Insiders 中開啟 - 設定 Copilot NES 是否可以移動您的程式碼以顯示建議。

  • editor.inlineSuggest.edits.renderSideBySide 在 VS Code 中開啟 在 VS Code Insiders 中開啟 - 設定 Copilot NES 是否應盡可能並排顯示較大的建議,或者是否應始終在相關程式碼下方顯示較大的建議。

    • auto (預設):如果檢視區中有足夠的空間,則並排顯示較大的編輯建議,否則建議會顯示在相關程式碼下方。
    • never:永遠不要並排顯示建議,始終在相關程式碼下方顯示建議。
  • github.copilot.nextEditSuggestions.fixes 在 VS Code 中開啟 在 VS Code Insiders 中開啟 - 啟用基於診斷(波浪號)的下次編輯建議。例如,遺失的匯入。

  • editor.inlineSuggest.minShowDelay 在 VS Code 中開啟 在 VS Code Insiders 中開啟 - 顯示內嵌建議前等待的時間(毫秒)。預設為 0

後續步驟

© . This site is unofficial and not affiliated with Microsoft.