VS Code 中 GitHub Copilot 的行內建議
GitHub Copilot 充當由 AI 驅動的結對程式設計師,自動提供行內建議以完成您的程式碼、註釋、測試等。它會在您編寫程式碼時直接在編輯器中提供這些建議,並且可以與廣泛的程式語言和框架配合使用。
您可能會遇到 Copilot 的兩種行內建議,它們都會匹配您的編碼風格並考慮您現有的程式碼。
-
虛化文字建議 - 在編輯器中開始輸入,Copilot 會在您當前的游標位置提供暗淡的虛化文字建議。
-
下一個編輯建議 - 使用 Copilot 的下一個編輯建議(也稱為 Copilot NES)來預測您下一個編輯的程式碼。基於您所做的編輯,NES 會預測您接下來要進行的編輯的位置以及該編輯的內容。
入門
-
安裝 GitHub Copilot 擴充套件。
-
使用您的 GitHub 帳戶登入以使用 Copilot。
提示如果您還沒有 Copilot 訂閱,您可以透過註冊 Copilot 免費計劃來免費使用 Copilot,每月可獲得有限數量的行內建議和聊天互動。
-
透過我們的 Copilot 快速入門 瞭解 Copilot 在 VS Code 中的主要功能。
獲取您的第一個建議
Copilot 在您鍵入時提供暗淡的虛化文字建議:有時是當前行的補全,有時是全新的程式碼塊。您可以全部接受,或接受部分建議,也可以繼續鍵入並忽略建議。
在以下示例中,請注意 Copilot 如何使用暗淡的虛化文字建議實現 `calculateDaysBetweenDates` JavaScript 函式。

當您收到行內建議時,您可以使用 Tab 鍵接受它。
Copilot 會嘗試應用與您程式碼中已有的編碼風格相同的風格。請注意,在以下示例中,Copilot 為建議的 `subtract` 方法應用了與 `add` 方法相同的輸入引數命名約定。

部分接受建議
您可能不想接受 GitHub Copilot 的整個建議。您可以使用 ⌘→(Windows、Linux Ctrl+Right) 鍵盤快捷鍵來接受建議的下一個單詞或下一行。
備選建議
對於任何給定的輸入,Copilot 可能會提供多個備選建議。您可以將滑鼠懸停在任何一個建議上以檢視其他建議。

從程式碼註釋生成建議
您不必依賴 Copilot 提供建議,而是可以透過使用程式碼註釋來提供您期望的程式碼的提示。例如,您可以指定要使用的演算法型別或概念(例如,“使用遞迴”或“使用單例模式”),或者要新增到類的哪些方法和屬性。
以下示例展示瞭如何指示 Copilot 在 TypeScript 中建立一個類來表示學生,並提供有關方法和屬性的資訊。

下一個編輯建議
虛化文字建議非常適合自動完成程式碼塊。但由於大多數編碼活動是編輯現有程式碼,因此行內建議的自然演變是也能幫助進行編輯,無論是在游標處還是在更遠的地方。編輯通常不是孤立進行的——在不同場景下有一系列需要進行的邏輯編輯。下一個編輯建議(Copilot NES)就是這種演變。
根據您所做的編輯,下一個編輯建議會預測您接下來要進行的編輯的位置以及該編輯的內容。Copilot NES 可幫助您保持流程順暢,建議與您當前工作相關的未來更改,您只需按 Tab 鍵即可快速導航和接受 Copilot 的建議。建議可能跨越單個符號、整行或多行,具體取決於潛在更改的範圍。
要開始使用 Copilot NES,請啟用 VS Code 設定 github.copilot.nextEditSuggestions.enabled。
導航和接受編輯建議
您可以使用 Tab 鍵快速導航到建議的程式碼更改,從而節省您查詢下一個相關編輯的時間(無需手動搜尋檔案或引用)。然後,您可以使用 Tab 鍵再次接受建議。
出血區域中的箭頭指示是否提供了編輯建議。箭頭指示下一個編輯建議的位置,相對於您當前的游標位置。
您可以將滑鼠懸停在箭頭上來瀏覽編輯建議選單,其中包含鍵盤快捷鍵和設定配置。

如果您是 VS Code vim 擴充套件 使用者,請使用最新版本的擴充套件以避免與 NES 發生按鍵衝突。
透過編輯建議減少干擾
預設情況下,編輯建議通過出血區域中的箭頭指示,程式碼更改會在編輯器中顯示。啟用 editor.inlineSuggest.edits.showCollapsed 設定,以便僅在您按 Tab 鍵導航到建議或將滑鼠懸停在出血區域箭頭之前,在編輯器中顯示程式碼更改。或者,將滑鼠懸停在出血區域箭頭並從選單中選擇“顯示摺疊”選項。
下一個編輯建議的用例
捕獲和更正錯誤
-
Copilot 可幫助處理簡單的錯誤,例如拼寫錯誤。它會建議修復缺少或交換的字母,例如 `cont x = 5` 或 `conts x = 5`,本應是 `const x = 5`。

-
Copilot 還可以幫助處理更復雜的邏輯錯誤,例如倒置的三元表示式。

或本應使用 `&&` 而不是 `||` 的比較。

更改意圖
-
Copilot 會建議您的程式碼其餘部分做出與新意圖更改相匹配的更改。例如,當將類從 `Point` 更改為 `Point3D` 時,Copilot 會建議在類定義中新增一個 `z` 變數。接受更改後,Copilot NES 接下來會建議將 `z` 新增到距離計算中。

重構
-
在一個檔案中重新命名一個變數,Copilot 會建議在其他所有地方更新它。如果您使用新名稱或命名模式,Copilot 會建議後續程式碼也進行類似更新。

-
匹配程式碼風格。複製貼上程式碼後,Copilot 會建議如何調整它以匹配貼上發生處的當前程式碼。
啟用或停用行內建議
您可以為所有語言或僅為特定語言啟用或停用行內建議。要啟用或停用行內建議,請選擇狀態列中的 Copilot 選單,然後選中或取消選中以啟用或停用行內建議的選項。停用特定語言的行內建議的選項取決於活動編輯器的語言。

或者,修改設定編輯器中的 github.copilot.enable 設定。為要啟用或停用行內建議的每種語言新增一個條目。要為所有語言啟用或停用行內建議,請將 `*` 的值設定為 `true` 或 `false`。
要暫時停用編輯器中的所有行內建議,請在狀態列中選擇 Copilot 選單,然後選擇“暫停”按鈕以每五分鐘增加一次暫停時間。要恢復行內建議,請在 Copilot 選單中選擇“取消暫停”按鈕。
或者,在命令面板中使用“暫停行內建議”和“取消暫停行內建議”命令。
更改建議的 AI 模型
不同的語言模型(LLM)在不同的資料集上進行訓練,可能具有不同的功能和優勢。瞭解更多關於如何在 VS Code 中選擇不同的 AI 語言模型。
要更改用於在編輯器中生成虛化文字建議的語言模型。
-
開啟命令面板(F1)。
-
鍵入 **更改補全模型**,然後選擇 **GitHub Copilot: Change Completions Model** 命令。
-
在下拉選單中,選擇要使用的模型。
可用模型的列表可能會隨時間變化。模型選擇器可能並不總是顯示多個模型,如果我們釋出預覽模型和額外的行內建議模型,它們將在此處顯示。如果您是 Copilot Business 或 Enterprise 使用者,您的管理員需要透過在 GitHub.com 上的 Copilot 策略設定中選擇“Editor Preview Features”來為您的組織啟用某些模型。
提示與技巧
上下文
為了提供相關的行內建議,Copilot 會檢視編輯器中當前和已開啟的檔案,以分析上下文並建立適當的建議。在使用 Copilot 時開啟相關的 VS Code 檔案有助於建立此上下文,並讓 Copilot 更全面地瞭解您的專案。
設定
虛化文字建議設定
-
github.copilot.enable - 為所有語言或特定語言啟用或停用行內補全。
-
editor.inlineSuggest.fontFamily - 配置行內補全的字型。
-
editor.inlineSuggest.showToolbar - 啟用或停用行內補全出現的工具欄。
-
editor.inlineSuggest.syntaxHighlightingEnabled - 啟用或停用行內補全的語法高亮。
下一個編輯建議設定
-
github.copilot.nextEditSuggestions.enabled - 啟用 Copilot 的下一個編輯建議(Copilot NES)。
-
editor.inlineSuggest.edits.allowCodeShifting - 配置 Copilot NES 是否能夠移動您的程式碼以顯示建議。
-
editor.inlineSuggest.edits.renderSideBySide - 配置 Copilot NES 是否可以並排顯示較大的建議(如果可能),或者 Copilot NES 是否應始終在相關程式碼下方顯示較大的建議。
- auto (預設):如果視口中有足夠空間,則並排顯示較大的編輯建議,否則建議顯示在相關程式碼下方。
- never:從不併排顯示建議,始終在相關程式碼下方顯示建議。
-
github.copilot.nextEditSuggestions.fixes - 根據診斷(波浪線)啟用下一個編輯建議。例如,缺少匯入。
-
editor.inlineSuggest.minShowDelay - 在顯示行內建議之前等待的毫秒數。預設值為
0。
後續步驟
-
在快速入門中探索主要功能。
-
在 VS Code 中使用聊天進行 AI 聊天對話。
-
觀看我們在 YouTube 上的 VS Code Copilot 系列影片。