現已釋出!閱讀關於 11 月新增功能和修復的內容。

程式碼導航

Visual Studio Code 擁有一個高效率的程式碼編輯器,結合程式語言服務,它為您提供 IDE 的強大功能和文字編輯器的速度。在本主題中,我們將首先介紹 VS Code 的語言智慧功能(建議、引數提示、智慧程式碼導航),然後展示核心文字編輯器的強大功能。

快速檔案導航

提示: 您可以透過鍵入 ⌘P (Windows, Linux Ctrl+P)快速開啟)來按名稱開啟任何檔案。

當您探索專案時,資源管理器非常適合在檔案之間導航。但是,當您處理某項任務時,您會發現自己經常在同一組檔案之間快速跳轉。VS Code 提供了兩個強大的命令,可以透過易於使用的鍵盤快捷鍵在檔案內部和檔案之間進行導航。

按住 Ctrl 並按下 Tab 以檢視編輯器組中所有開啟檔案的列表。要開啟其中一個檔案,再次使用 Tab 選擇要導航到的檔案,然後釋放 Ctrl 以開啟它。

Quick Navigation

或者,您可以使用 ⌃- (Windows Alt+Left, Linux Ctrl+Alt+-)⌃⇧- (Windows Alt+Right, Linux Ctrl+Shift+-) 在檔案和編輯位置之間進行導航。如果您在同一檔案的不同行之間跳轉,這些快捷鍵可讓您輕鬆地在這些位置之間導航。

麵包屑導航

編輯器在其內容上方有一個導航欄,稱為 麵包屑導航。它顯示當前位置,並允許您在資料夾、檔案和符號之間快速導航。

Breadcrumbs

麵包屑導航始終顯示檔案路徑,並在語言擴充套件的幫助下,顯示到游標位置的符號路徑。顯示的符號與大綱檢視和轉到符號中的符號相同。

選擇路徑中的麵包屑導航會顯示一個下拉列表,其中包含該級別的同級項,以便您可以快速導航到其他資料夾和檔案。

breadcrumb folder dropdown

如果當前檔案型別對符號有語言支援,您將看到當前的符號路徑以及同一級別和更低級別的其他符號的下拉列表。

breadcrumb symbol dropdown

您可以透過 檢視 > 顯示麵包屑導航 的切換選項,或使用 breadcrumbs.enabled 設定 來關閉面包屑導航。

麵包屑導航自定義

麵包屑導航的外觀可以自定義。如果您有非常長的路徑,或者只對檔案路徑或符號路徑感興趣,您可以使用 breadcrumbs.filePathbreadcrumbs.symbolPath 設定。兩者都支援 onofflast,它們定義了您是否或看到路徑的哪個部分。預設情況下,麵包屑導航會在麵包屑導航的左側顯示檔案和符號圖示,但您可以透過將 breadcrumbs.icons 設定為 false 來刪除圖示。

麵包屑導航中的符號順序

您可以使用 breadcrumbs.symbolSortOrder 設定來控制符號在麵包屑導航下拉列表中的排序方式。

允許的值是

  • position - 檔案中的位置(預設)
  • name - 按字母順序
  • type - 符號型別順序

麵包屑導航鍵盤導航

要與麵包屑導航進行互動,請使用 **聚焦麵包屑導航** 命令或按 ⇧⌘. (Windows, Linux Ctrl+Shift+.)。它將選擇最後一個元素並開啟一個下拉列表,允許您導航到同級檔案或符號。使用 (Windows, Linux Left) (Windows, Linux Right) 鍵盤快捷鍵可以轉到當前元素之前或之後的元素。當下拉列表出現時,開始鍵入 - 所有匹配的元素都將被突出顯示,並且最佳匹配項將被選中以便快速導航。

您也可以在沒有下拉列表的情況下與麵包屑導航進行互動。按 ⇧⌘; (Windows, Linux Ctrl+Shift+;) 聚焦最後一個元素,使用 (Windows, Linux Left) (Windows, Linux Right) 導航,並使用 Space 在編輯器中顯示元素。

轉到定義

如果 語言 支援,您可以透過按 F12 跳轉到符號的定義。

如果按住 Ctrl 並將滑鼠懸停在符號上,將出現宣告的預覽

Ctrl Hover

提示: 您可以透過 Ctrl+Click 跳轉到定義,或者透過 Ctrl+Alt+Click 將定義開啟到旁邊。

轉到型別定義

一些 語言 還支援透過從編輯器上下文選單或 **命令面板** 執行 **轉到型別定義** 命令來跳轉到符號的型別定義。這將帶您到符號型別的定義。命令 editor.action.goToTypeDefinition 預設沒有繫結到鍵盤快捷鍵,但您可以新增自己的自定義 鍵盤快捷鍵

轉到實現

語言 還可以透過按 ⌘F12 (Windows, Linux Ctrl+F12) 支援跳轉到符號的實現。對於介面,這將顯示該介面的所有實現者;對於抽象方法,這將顯示該方法的所有具體實現。

轉到符號

您可以使用 ⇧⌘O (Windows, Linux Ctrl+Shift+O) 在檔案內導航符號。透過輸入 :,符號將按類別分組。按 鍵進行導航到您想要的位置。

Go to Symbol

按名稱開啟符號

一些語言支援透過 ⌘T (Windows, Linux Ctrl+T) 在檔案之間跳轉到符號。輸入您要導航到的型別的第一個字母,無論它包含在哪個檔案中,然後按 Enter

Open symbol by name

速覽

我們認為,當您只想快速檢查某事時,沒有什麼比一個大的上下文切換更糟糕的了。這就是為什麼我們支援彈出式編輯器。當您執行 **轉到引用** 搜尋(透過 ⇧F12 (Windows, Linux Shift+F12))或 **檢視定義**(透過 ⌥F12 (Windows Alt+F12, Linux Ctrl+Shift+F10))時,我們會將結果內聯嵌入

Peek References

您可以在彈出式編輯器中導航不同的引用,並直接在那裡進行快速編輯。單擊彈出式編輯器檔名或在結果列表中雙擊將會在外部編輯器中開啟引用。

提示: 此外,如果您按 Escape 或在彈出式編輯器區域雙擊,彈出視窗將關閉。您可以透過 editor.stablePeek 設定 來停用此行為。

括號匹配

當游標靠近括號時,匹配的括號將被高亮顯示。

Bracket Matching

提示: 您可以透過 ⇧⌘\ (Windows, Linux Ctrl+Shift+\) 跳轉到匹配的括號

括號對顏色化

透過將 editor.bracketPairColorization.enabled 設定為 true,也可以為匹配的括號對進行著色。

Bracket Pair Colorization

所有顏色都可以根據主題進行調整,最多可以配置六種顏色。

您可以使用 workbench.colorCustomizations 在您的設定中覆蓋這些由主題提供的顏色

"workbench.colorCustomizations": {
    "editorBracketHighlight.foreground1": "#FFD700",
    "editorBracketHighlight.foreground2": "#DA70D6",
    "editorBracketHighlight.foreground3": "#179fff",
},

引用資訊

一些語言(如 C#)支援行內引用資訊,該資訊可即時更新。這使您可以快速分析您的編輯所產生的影響,或您在整個專案中某個特定方法或屬性的流行度

Reference information

提示: 透過點選這些註釋直接呼叫 **檢視引用** 操作。

提示: CodeLens 中顯示的引用資訊可以透過 editor.codeLens 設定 來開啟或關閉。

重新命名符號

一些語言支援跨檔案重新命名符號。按 F2,然後輸入新的期望名稱並按 Enter。符號的所有用法都會在跨檔案中被重新命名。

Rename

錯誤與警告

警告或錯誤可以透過 配置的任務、豐富的語言服務或持續在後臺分析您的程式碼的 linter 來生成。由於我們喜歡無 bug 的程式碼,因此警告和錯誤會出現在多個地方

  • 在狀態列中,有所有錯誤和警告計數摘要。
  • 您可以點選摘要或按 ⇧⌘M (Windows, Linux Ctrl+Shift+M) 來顯示 **問題** 面板,其中包含所有當前錯誤的列表。
  • 如果您開啟一個有錯誤或警告的檔案,它們將在文字行內和概覽標尺中顯示。

errors in problems panel

提示: 要在當前檔案中的錯誤或警告之間迴圈,您可以按 ⌥F8 (Windows, Linux Alt+F8)⇧⌥F8 (Windows, Linux Shift+Alt+F8),這將顯示一個內聯區域,詳細說明問題和可能的程式碼操作(如果可用)

Errors and Warnings Inline

程式碼操作

警告和錯誤可以提供程式碼操作(也稱為快速修復),以幫助修復問題。它們將在編輯器左側邊距顯示為一個燈泡。點選燈泡將顯示程式碼操作選項或執行操作。

行內提示

一些語言提供行內提示:即在程式碼中內聯渲染的原始碼的附加資訊。這通常用於顯示推斷的型別。下面的示例顯示了顯示 JavaScript 變數和函式返回型別的推斷型別的行內提示。

Inlay hints for inferred types in TypeScript

行內提示可以透過 editor.inlayHints.enabled 設定來啟用/停用,預設是啟用的。像 TypeScript 或 Rust 這樣的擴充套件需要提供實際的行內提示資訊。

為了您的安全,VS Code 在開啟來自編輯器的傳出網站連結之前會顯示一個提示。

Outgoing link prompt

您可以繼續訪問瀏覽器中的外部網站,或者選擇複製連結或取消請求。如果您選擇 **配置受信任的域**,將出現一個下拉選單,允許您信任精確的 URL、信任 URL 域及其子域,或信任所有域以停用傳出連結保護。

Configure Trusted Domains dropdown

**管理受信任的域** 選項,也可以隨時從命令面板訪問,將開啟 **受信任的域** JSON 檔案,您可以在其中新增、刪除或修改受信任的域。

// You can use the "Manage Trusted Domains" command to open this file.
// Save this file to apply the trusted domains rules.
[
  "*.twitter.com"
]

**受信任的域** JSON 檔案還包含註釋,其中提供了支援的域格式示例以及預設受信任的域列表,例如 https://*.visualstudio.comhttps://*.microsoft.com

後續步驟

現在您已經瞭解了編輯器的功能,是時候嘗試其他一些東西了……

常見問題

如何自動選擇快速開啟中的第二個條目而不是第一個?

使用命令 workbench.action.quickOpenPreviousEditor,您可以在快速開啟中自動選擇第二個條目。如果您想從列表中選擇前一個條目而不必呼叫另一個鍵盤快捷鍵,這會很有用

[
  {
    "key": "ctrl+p",
    "command": "workbench.action.quickOpenPreviousEditor"
  },
  {
    "key": "ctrl+p",
    "command": "-workbench.action.quickOpen"
  }
]

如何配置 Ctrl+Tab 以在所有組的所有編輯器之間導航?

預設情況下,Ctrl+Tab 在同一編輯器組的編輯器之間導航。如果您想在所有組的所有開啟的編輯器之間導航,可以為 workbench.action.quickOpenPreviousRecentlyUsedEditorworkbench.action.quickOpenLeastRecentlyUsedEditor 命令建立鍵盤快捷鍵

[
  {
    "key": "ctrl+tab",
    "command": "workbench.action.quickOpenPreviousRecentlyUsedEditor",
    "when": "!inEditorsPicker"
  },
  {
    "key": "ctrl+shift+tab",
    "command": "workbench.action.quickOpenLeastRecentlyUsedEditor",
    "when": "!inEditorsPicker"
  }
]

如何在沒有選擇器的情況下在最近使用的編輯器之間導航?

以下是您可以使用的一些命令,可以在不開啟選擇器的情況下在編輯器中導航

命令 命令 ID
開啟下一個最近使用的編輯器 workbench.action.openNextRecentlyUsedEditor
開啟上一個最近使用的編輯器 workbench.action.openPreviousRecentlyUsedEditor
開啟組中下一個最近使用的編輯器 workbench.action.openNextRecentlyUsedEditorInGroup
開啟組中上一個最近使用的編輯器 workbench.action.openPreviousRecentlyUsedEditorInGroup
© . This site is unofficial and not affiliated with Microsoft.