🚀 在 VS Code 中免費取得

Visual Studio Code 的鍵盤快速鍵

Visual Studio Code 可讓您直接透過鍵盤執行大部分工作。本頁列出預設快速鍵 (鍵盤快速鍵),並說明如何更新這些快速鍵。

注意:如果您在 Mac 上瀏覽此頁面,將會看到 Mac 的鍵盤快速鍵。如果您使用 Windows 或 Linux 瀏覽,則會看到該平台的按鍵。如果您需要其他平台的鍵盤快速鍵,請將滑鼠游標停留在您感興趣的按鍵上。

鍵盤快速鍵編輯器

VS Code 透過鍵盤快速鍵編輯器提供豐富的鍵盤快速鍵編輯體驗。此編輯器列出所有具備和不具備鍵盤快速鍵的可用命令,並可讓您使用可用的動作來變更/移除/重設其鍵盤快速鍵。您可以使用搜尋方塊來尋找命令或鍵盤快速鍵。您可以前往 [檔案] > [喜好設定] > [鍵盤快速鍵] 下的功能表,或使用 [喜好設定: 開啟鍵盤快速鍵] 命令 (⌘K ⌘S (Windows、Linux Ctrl+K Ctrl+S)) 來開啟此編輯器。

Keyboard Shortcuts

最重要的是,您可以根據鍵盤配置查看鍵盤快速鍵。例如,當配置變更為德文時,在美式鍵盤配置中,鍵盤快速鍵 Cmd+\ 將會顯示為 Ctrl+Shift+Alt+Cmd+7。輸入鍵盤快速鍵的對話方塊將會根據您的鍵盤配置指派正確且所需的鍵盤快速鍵。

如需進行更進階的鍵盤快速鍵自訂,請參閱進階自訂

自訂 UI 動作的快速鍵

您可以快速自訂使用者介面動作的鍵盤快速鍵。在工作台中的任何動作項目上按一下滑鼠右鍵,然後選取 [設定按鍵繫結]。如果動作具有 when 子句,則會自動包含該子句,讓您更輕鬆地依照需求設定鍵盤快速鍵。

鍵盤配置擴充功能

鍵盤快速鍵對於生產力至關重要,而改變鍵盤習慣可能很困難。為了協助您,[檔案] > [喜好設定] > [從...移轉鍵盤快速鍵] 會顯示熱門鍵盤配置擴充功能的清單。這些擴充功能會修改 VS Code 快速鍵,以符合其他編輯器的快速鍵,讓您不必學習新的鍵盤快速鍵。Marketplace 中也有 鍵盤配置類別的擴充功能。

提示:按一下上方的擴充功能磚,以閱讀描述和評論,進而判斷哪個擴充功能最適合您。如需詳細資訊,請參閱 Marketplace

鍵盤快速鍵參考

我們也有這些鍵盤快速鍵的可列印版本。[說明] > [鍵盤快速鍵參考] 會顯示精簡的 PDF 版本,適合列印以供輕鬆參考。

以下是三個平台特定版本 (美式英文鍵盤) 的連結

偵測鍵盤快速鍵衝突

如果您安裝了許多擴充功能,或已自訂鍵盤快速鍵,則有時可能會發生鍵盤快速鍵衝突,其中相同的鍵盤快速鍵會對應至多個命令。這可能會導致混淆的行為,尤其是當您在編輯器中移動時,不同的鍵盤快速鍵會進出範圍。

鍵盤快速鍵編輯器具有內容功能表命令 [顯示相同按鍵繫結],這會根據鍵盤快速鍵篩選鍵盤快速鍵,以顯示衝突。

show keyboard shortcut conflicts menu

選取您認為超載的鍵盤快速鍵命令,您就可以查看是否已定義多個命令、鍵盤快速鍵的來源以及它們的啟用時間。

show keyboard shortcut conflicts result

疑難排解鍵盤快速鍵

若要疑難排解鍵盤快速鍵問題,您可以執行命令 [開發人員: 切換鍵盤快速鍵疑難排解]。這會啟用已分派鍵盤快速鍵的記錄,並開啟包含對應記錄檔的輸出面板。

然後,您可以按下您想要的鍵盤快速鍵,並檢查 VS Code 偵測到哪個鍵盤快速鍵以及叫用哪個命令。

例如,在 macOS 上的程式碼編輯器中按下 cmd+/ 時,記錄輸出會是

[KeybindingService]: / Received  keydown event - modifiers: [meta], code: MetaLeft, keyCode: 91, key: Meta
[KeybindingService]: | Converted keydown event - modifiers: [meta], code: MetaLeft, keyCode: 57 ('Meta')
[KeybindingService]: \ Keyboard event cannot be dispatched.
[KeybindingService]: / Received  keydown event - modifiers: [meta], code: Slash, keyCode: 191, key: /
[KeybindingService]: | Converted keydown event - modifiers: [meta], code: Slash, keyCode: 85 ('/')
[KeybindingService]: | Resolving meta+[Slash]
[KeybindingService]: \ From 2 keybinding entries, matched editor.action.commentLine, when: editorTextFocus && !editorReadonly, source: built-in.

第一個按鍵按下事件是針對 MetaLeft 鍵 (cmd),且無法分派。第二個按鍵按下事件是針對 Slash 鍵 (/),且會分派為 meta+[Slash]。有兩個鍵盤快速鍵項目從 meta+[Slash] 對應,而符合的項目是針對命令 editor.action.commentLine,其具有 when 條件 editorTextFocus && !editorReadonly,而且是內建鍵盤快速鍵項目。

檢視已修改的鍵盤快速鍵

您可以在 VS Code 的鍵盤快速鍵編輯器中,使用 [更多動作] (...) 功能表中的 [顯示使用者按鍵繫結] 命令,檢視任何使用者修改過的鍵盤快速鍵。這會將 @source:user 篩選器套用至鍵盤快速鍵編輯器 ([來源] 為 '使用者')。

Default Keyboard Shortcuts

進階自訂

VS Code 中的所有鍵盤快速鍵都可以透過 keybindings.json 檔案自訂,您可以在其中覆寫預設鍵盤快速鍵

若要開啟 keybindings.json 檔案

  • 開啟鍵盤快速鍵編輯器,然後選取編輯器標題列右側的 [開啟鍵盤快速鍵 (JSON)] 按鈕。

    開啟鍵盤快速鍵 JSON 按鈕在命令面板中 (⇧⌘P (Windows、Linux Ctrl+Shift+P))。

鍵盤規則

每個規則都包含

  • 描述按下按鍵的 key
  • 包含要執行命令的識別碼的 command
  • 選用的 when 子句,其中包含布林運算式,將根據目前的內容進行評估。

和弦 (兩個個別的按鍵動作) 是透過以空格分隔兩個按鍵來描述。例如,Ctrl+K Ctrl+C

按下按鍵時

  • 規則會從評估。
  • 第一個符合的規則 (包括 keywhen) 會被接受。
  • 不再處理任何規則。
  • 如果找到規則且已設定 command,則會執行 command

額外的 keybindings.json 規則會在執行階段附加至預設規則的底部,因此允許它們覆寫預設規則。VS Code 會監看 keybindings.json 檔案,因此在 VS Code 執行時編輯它將會在執行階段更新規則。

鍵盤快速鍵分派是透過分析以 JSON 表示的規則清單來完成。以下是一些範例

// Keyboard shortcuts that are active when the focus is in the editor
{ "key": "home",            "command": "cursorHome",                  "when": "editorTextFocus" },
{ "key": "shift+home",      "command": "cursorHomeSelect",            "when": "editorTextFocus" },

// Keyboard shortcuts that are complementary
{ "key": "f5",              "command": "workbench.action.debug.continue", "when": "inDebugMode" },
{ "key": "f5",              "command": "workbench.action.debug.start",    "when": "!inDebugMode" },

// Global keyboard shortcuts
{ "key": "ctrl+f",          "command": "actions.find" },
{ "key": "alt+left",        "command": "workbench.action.navigateBack" },
{ "key": "alt+right",       "command": "workbench.action.navigateForward" },

// Global keyboard shortcuts using chords (two separate keypress actions)
{ "key": "ctrl+k enter",    "command": "workbench.action.keepEditor" },
{ "key": "ctrl+k ctrl+w",   "command": "workbench.action.closeAllEditors" },

接受的按鍵

key 是由修飾鍵和按鍵本身組成。

接受下列修飾鍵

平台 修飾鍵
macOS Ctrl+Shift+Alt+Cmd+
Windows Ctrl+Shift+Alt+Win+
Linux Ctrl+Shift+Alt+Meta+

接受下列按鍵

  • f1-f19a-z0-9
  • `, -, =, [, ], \, ;, ', ,, ., /
  • leftuprightdownpageuppagedownendhome
  • tabenterescapespacebackspacedelete
  • pausebreakcapslockinsert
  • numpad0-numpad9numpad_multiplynumpad_addnumpad_separator
  • numpad_subtractnumpad_decimalnumpad_divide

命令引數

您可以使用引數叫用命令。如果您經常對特定檔案或資料夾執行相同的作業,這會很有用。您可以新增自訂鍵盤快速鍵來完全符合您的需求。

以下是覆寫 Enter 鍵以列印某些文字的範例

{
  "key": "enter",
  "command": "type",
  "args": { "text": "Hello World" },
  "when": "editorTextFocus"
}

type 命令會收到 {"text": "Hello World"} 作為其第一個引數,並將 "Hello World" 新增至檔案,而不是產生預設命令。

如需有關接受引數的命令的詳細資訊,請參閱內建命令

執行多個命令

可以使用 runCommands 命令建立依序執行數個其他命令的鍵盤快速鍵。

  1. 執行數個不含引數的命令:向下複製目前行、將目前行標示為註解、將游標移至複製的行
{
  "key": "ctrl+alt+c",
  "command": "runCommands",
  "args": {
    "commands": [
      "editor.action.copyLinesDownAction",
      "cursorUp",
      "editor.action.addCommentLine",
      "cursorDown"
    ]
  }
},
  1. 也可以將引數傳遞至命令:建立新的未命名 TypeScript 檔案並插入自訂程式碼片段
{
  "key": "ctrl+n",
  "command": "runCommands",
  "args": {
    "commands": [
      {
        "command": "workbench.action.files.newUntitledFile",
        "args": {
          "languageId": "typescript"
        }
      },
      {
        "command": "editor.action.insertSnippet",
        "args": {
          "langId": "typescript",
          "snippet": "class ${1:ClassName} {\n\tconstructor() {\n\t\t$0\n\t}\n}"
        }
      }
    ]
  }
},

請注意,由 runCommands 執行的命令會收到 "args" 的值作為第一個引數。因此,在上述範例中,workbench.action.files.newUntitledFile 會收到 {"languageId": "typescript" } 作為其第一個也是唯一的引數。

若要傳遞數個引數,則需要將 "args" 作為陣列

{
  "key": "ctrl+shift+e",
  "command": "runCommands",
  "args": {
    "commands": [
      {
        // command invoked with 2 arguments: vscode.executeCommand("myCommand", "arg1", "arg2")
        "command": "myCommand",
        "args": ["arg1", "arg2"]
      }
    ]
  }
}

若要將陣列作為第一個引數傳遞,則需要將陣列包裝在另一個陣列中:"args": [ [1, 2, 3] ]

移除特定的鍵盤快速鍵規則

您可以撰寫鍵盤快速鍵規則,以移除特定的預設鍵盤快速鍵。使用 keybindings.json,一律可以重新定義 VS Code 的所有鍵盤快速鍵,但進行小幅調整可能很困難,尤其是在超載按鍵 (例如 TabEscape) 周圍。若要移除特定的鍵盤快速鍵,請將 - 新增至命令,而規則將會是移除規則。

以下是一個範例

// In Default Keyboard Shortcuts
...
{ "key": "tab", "command": "tab", "when": ... },
{ "key": "tab", "command": "jumpToNextSnippetPlaceholder", "when": ... },
{ "key": "tab", "command": "acceptSelectedSuggestion", "when": ... },
...

// To remove the second rule, for example, add in keybindings.json:
{ "key": "tab", "command": "-jumpToNextSnippetPlaceholder" }

若要使用空白動作覆寫特定的鍵盤快速鍵規則,您可以指定空白命令

// To override and disable any `tab` keyboard shortcut, for example, add in keybindings.json:
{ "key": "tab", "command": "" }

鍵盤配置

注意:本節僅與鍵盤快速鍵相關,與在編輯器中輸入無關。

上方的按鍵是虛擬按鍵的字串表示法,不一定與按下時產生的字元相關。更精確地說

  • 參考:虛擬按鍵代碼 (Windows)
  • tab 代表 VK_TAB (0x09)
  • ; 代表 VK_OEM_1 (0xBA)
  • = 代表 VK_OEM_PLUS (0xBB)
  • , 代表 VK_OEM_COMMA (0xBC)
  • - 代表 VK_OEM_MINUS (0xBD)
  • . 代表 VK_OEM_PERIOD (0xBE)
  • / 代表 VK_OEM_2 (0xBF)
  • ` 代表 VK_OEM_3 (0xC0)
  • [ 代表 VK_OEM_4 (0xDB)
  • \ 代表 VK_OEM_5 (0xDC)
  • ] 代表 VK_OEM_6 (0xDD)
  • ' 代表 VK_OEM_7 (0xDE)
  • 等等

不同的鍵盤配置通常會重新定位上述虛擬按鍵,或變更按下時產生的字元。當使用與標準美式不同的鍵盤配置時,Visual Studio Code 會執行下列動作

所有鍵盤快速鍵都會使用目前系統的鍵盤配置在 UI 中呈現。例如,當使用法文 (法國) 鍵盤配置時,[分割編輯器] 現在會呈現為 Ctrl+*

render keyboard shortcut

當編輯 keybindings.json 時,VS Code 會醒目提示誤導的鍵盤快速鍵,這些鍵盤快速鍵在檔案中以標準美式鍵盤配置下產生的字元表示,但在目前系統的鍵盤配置下需要按下具有不同標籤的按鍵。例如,以下是使用法文 (法國) 鍵盤配置時,預設鍵盤快速鍵規則的外觀

keybindings.json guidance

還有一個小工具可協助在編輯 keybindings.json 時輸入鍵盤快速鍵規則。若要啟動 [定義按鍵繫結] 小工具,請按下 ⌘K ⌘K (Windows、Linux Ctrl+K Ctrl+K)。此小工具會監聽按鍵按下動作,並在文字方塊中呈現序列化的 JSON 表示法,並在下方呈現 VS Code 在您目前的鍵盤配置下偵測到的按鍵。輸入您想要的按鍵組合後,您可以按下 Enter,系統會插入規則程式碼片段。

keyboard shortcut widget

注意:在 Linux 上,Visual Studio Code 會在啟動時偵測您目前的鍵盤配置,然後快取此資訊。為了獲得良好的體驗,如果您變更鍵盤配置,建議您重新啟動 VS Code。

與鍵盤配置無關的繫結

使用掃描碼,可以定義不會隨著鍵盤配置變更而變更的鍵盤快速鍵。例如

{ "key": "cmd+[Slash]", "command": "editor.action.commentLine", "when": "editorTextFocus" }

接受的掃描碼

  • [F1]-[F19][KeyA]-[KeyZ][Digit0]-[Digit9]
  • [Backquote][Minus][Equal][BracketLeft][BracketRight][Backslash][Semicolon][Quote][Comma][Period][Slash]
  • [ArrowLeft][ArrowUp][ArrowRight][ArrowDown][PageUp][PageDown][End][Home]
  • [Tab][Enter][Escape][Space][Backspace][Delete]
  • [Pause][CapsLock][Insert]
  • [Numpad0]-[Numpad9][NumpadMultiply][NumpadAdd][NumpadComma]
  • [NumpadSubtract][NumpadDecimal][NumpadDivide]

when 子句內容

VS Code 可讓您透過選用的 when 子句精細控制何時啟用鍵盤快速鍵。如果您的鍵盤快速鍵沒有 when 子句,則鍵盤快速鍵會隨時全域可用。when 子句會評估為布林值 true 或 false,以啟用鍵盤快速鍵。

VS Code 會根據 VS Code UI 中可見和作用中的元素設定各種內容索引鍵和特定值。例如,內建的 [開始偵錯] 命令具有鍵盤快速鍵 F5,只有在有可用的適當偵錯工具 (內容 debuggersAvailable 為 true) 且編輯器未處於偵錯模式 (內容 inDebugMode 為 false) 時才會啟用。

Start Debugging when clause in the Keyboard Shorts editor

您也可以直接在預設 keybinding.json 中檢視鍵盤快速鍵的 when 子句 ([喜好設定]: [開啟預設鍵盤快速鍵 (JSON)])

{ "key": "f5",  "command": "workbench.action.debug.start",
                   "when": "debuggersAvailable && !inDebugMode" },

條件運算子

針對 when 子句條件運算式,下列條件運算子對於鍵盤快速鍵很有用

運算子 符號 範例
相等 == "editorLangId == typescript"
不相等 != "resourceExtname != .js"
|| "isLinux||isWindows"
&& "textInputFocus && !editorReadonly"
符合 =~ "resourceScheme =~ /^untitled$|^file$/"

您可以在when 子句內容參考中找到 when 子句條件運算子的完整清單。

可用的內容

您可以在when 子句內容參考中找到一些可用的 when 子句內容。

該處的清單並未詳盡列出,您可以在鍵盤快速鍵編輯器 ([喜好設定]: [開啟鍵盤快速鍵]) 中搜尋和篩選,或檢閱預設 keybindings.json 檔案 ([喜好設定]: [開啟預設鍵盤快速鍵 (JSON)]),來尋找其他 when 子句內容。

用於重構的自訂鍵盤快速鍵

editor.action.codeAction 命令可讓您針對特定的重構 ([程式碼動作]) 設定鍵盤快速鍵。例如,下列鍵盤快速鍵會觸發 [擷取函式] 重構程式碼動作

{
  "key": "ctrl+shift+r ctrl+e",
  "command": "editor.action.codeAction",
  "args": {
    "kind": "refactor.extract.function"
  }
}

這會在重構主題中深入探討,您可以在其中瞭解不同種類的程式碼動作,以及在有多個可能的重構時如何將它們排定優先順序。

預設鍵盤快速鍵

您可以在 VS Code 的鍵盤快速鍵編輯器中,使用 [更多動作] (...) 功能表中的 [顯示預設按鍵繫結] 命令,檢視所有預設鍵盤快速鍵。這會將 @source:default 篩選器套用至鍵盤快速鍵編輯器 ([來源] 為 '預設')。

Default Keyboard Shortcuts

您可以使用命令 [喜好設定]: [開啟預設鍵盤快速鍵 (JSON)],將預設鍵盤快速鍵檢視為 JSON 檔案。

注意:下列按鍵的呈現方式假設為標準美式鍵盤配置。如果您使用不同的鍵盤配置,請參閱下文。您可以在 VS Code 的命令面板 ([檢視] -> [命令面板]) 或鍵盤快速鍵編輯器 ([檔案] > [喜好設定] > [鍵盤快速鍵]) 中檢視目前作用中的鍵盤快速鍵。

以下包含的某些命令沒有預設鍵盤快速鍵,因此會顯示為 未指派,但您可以指派自己的鍵盤快速鍵。

基本編輯

命令 按鍵 命令識別碼
剪下行 (空白選取範圍) ⌘X (Windows、Linux Ctrl+X) editor.action.clipboardCutAction
複製行 (空白選取範圍) ⌘C (Windows、Linux Ctrl+C) editor.action.clipboardCopyAction
貼上 ⌘V (Windows、Linux Ctrl+V) editor.action.clipboardPasteAction
刪除行 ⇧⌘K (Windows、Linux Ctrl+Shift+K) editor.action.deleteLines
在下方插入行 ⌘Enter (Windows、Linux Ctrl+Enter) editor.action.insertLineAfter
在上方插入行 ⇧⌘Enter (Windows、Linux Ctrl+Shift+Enter) editor.action.insertLineBefore
向下移動行 ⌥↓ (Windows、Linux Alt+Down) editor.action.moveLinesDownAction
向上移動行 ⌥↑ (Windows、Linux Alt+Up) editor.action.moveLinesUpAction
向下複製行 ⇧⌥↓ (Windows Shift+Alt+Down、Linux Ctrl+Shift+Alt+Down) editor.action.copyLinesDownAction
向上複製行 ⇧⌥↑ (Windows Shift+Alt+Up、Linux Ctrl+Shift+Alt+Up) editor.action.copyLinesUpAction
復原 ⌘Z (Windows、Linux Ctrl+Z) undo
取消復原 ⇧⌘Z (Windows、Linux Ctrl+Y) redo
將選取範圍新增至下一個尋找相符項 ⌘D (Windows、Linux Ctrl+D) editor.action.addSelectionToNextFindMatch
將最後一個選取範圍移至下一個尋找相符項 ⌘K ⌘D (Windows、Linux Ctrl+K Ctrl+D) editor.action.moveSelectionToNextFindMatch
復原最後一個游標操作 ⌘U (Windows、Linux Ctrl+U) cursorUndo
在每個選取行的結尾插入游標 ⇧⌥I (Windows、Linux Shift+Alt+I) editor.action.insertCursorAtEndOfEachLineSelected
選取目前選取範圍的所有執行個體 ⇧⌘L (Windows、Linux Ctrl+Shift+L) editor.action.selectHighlights
選取目前單字的所有執行個體 ⌘F2 (Windows、Linux Ctrl+F2) editor.action.changeAll
選取目前行 ⌘L (Windows、Linux Ctrl+L) expandLineSelection
在下方插入游標 ⌥⌘↓ (Windows Ctrl+Alt+Down、Linux Shift+Alt+Down) editor.action.insertCursorBelow
在上方插入游標 ⌥⌘↑ (Windows Ctrl+Alt+Up、Linux Shift+Alt+Up) editor.action.insertCursorAbove
跳到相符的括弧 ⇧⌘\ (Windows、Linux Ctrl+Shift+\) editor.action.jumpToBracket
縮排行 ⌘] (Windows、Linux Ctrl+]) editor.action.indentLines
凸排行 ⌘[ (Windows、Linux Ctrl+[) editor.action.outdentLines
移至行首 Home cursorHome
移至行尾 End cursorEnd
移至檔案結尾 ⌘↓ (Windows、Linux Ctrl+End) cursorBottom
移至檔案開頭 ⌘↑ (Windows、Linux Ctrl+Home) cursorTop
向下捲動行 ⌃PageDown (Windows、Linux Ctrl+Down) scrollLineDown
向上捲動行 ⌃PageUp (Windows、Linux Ctrl+Up) scrollLineUp
向下捲動頁面 ⌘PageDown (Windows、Linux Alt+PageDown) scrollPageDown
向上捲動頁面 ⌘PageUp (Windows、Linux Alt+PageUp) scrollPageUp
摺疊 (收合) 區域 ⌥⌘[ (Windows、Linux Ctrl+Shift+[) editor.fold
展開 (取消收合) 區域 ⌥⌘] (Windows、Linux Ctrl+Shift+]) editor.unfold
切換摺疊區域 ⌘K ⌘L (Windows、Linux Ctrl+K Ctrl+L) editor.toggleFold
摺疊 (收合) 所有子區域 ⌘K ⌘[ (Windows、Linux Ctrl+K Ctrl+[) editor.foldRecursively
展開 (取消收合) 所有子區域 ⌘K ⌘] (Windows、Linux Ctrl+K Ctrl+]) editor.unfoldRecursively
摺疊 (收合) 所有區域 ⌘K ⌘0 (Windows、Linux Ctrl+K Ctrl+0) editor.foldAll
展開 (取消收合) 所有區域 ⌘K ⌘J (Windows、Linux Ctrl+K Ctrl+J) editor.unfoldAll
新增行註解 ⌘K ⌘C (Windows、Linux Ctrl+K Ctrl+C) editor.action.addCommentLine
移除行註解 ⌘K ⌘U (Windows、Linux Ctrl+K Ctrl+U) editor.action.removeCommentLine
切換行註解 ⌘/ (Windows、Linux Ctrl+/) editor.action.commentLine
切換區塊註解 ⇧⌥A (Windows Shift+Alt+A、Linux Ctrl+Shift+A) editor.action.blockComment
尋找 ⌘F (Windows、Linux Ctrl+F) actions.find
取代 ⌥⌘F (Windows、Linux Ctrl+H) editor.action.startFindReplaceAction
尋找下一個 Enter editor.action.nextMatchFindAction
尋找上一個 ⇧Enter (Windows、Linux Shift+Enter) editor.action.previousMatchFindAction
選取所有尋找相符項的執行個體 ⌥Enter (Windows、Linux Alt+Enter) editor.action.selectAllMatches
切換尋找區分大小寫 ⌥⌘C (Windows、Linux Alt+C) toggleFindCaseSensitive
切換尋找 Regex ⌥⌘R (Windows、Linux Alt+R) toggleFindRegex
切換尋找全字拼寫須相符 ⌥⌘W (Windows、Linux Alt+W) toggleFindWholeWord
切換使用 Tab 鍵設定焦點 ⌃⇧M (Windows、Linux Ctrl+M) editor.action.toggleTabFocusMode
切換轉譯空白字元 toggleRenderWhitespace
切換自動換行 ⌥Z (Windows、Linux Alt+Z) editor.action.toggleWordWrap

豐富的語言編輯

命令 按鍵 命令識別碼
觸發建議 ⌃Space (Windows、Linux Ctrl+Space) editor.action.triggerSuggest
觸發參數提示 ⇧⌘Space (Windows、Linux Ctrl+Shift+Space) editor.action.triggerParameterHints
格式化文件 ⇧⌥F (Windows Shift+Alt+F、Linux Ctrl+Shift+I) editor.action.formatDocument
格式化選取範圍 ⌘K ⌘F (Windows、Linux Ctrl+K Ctrl+F) editor.action.formatSelection
移至定義 F12 editor.action.revealDefinition
顯示浮動宣告 ⌘K ⌘I (Windows、Linux Ctrl+K Ctrl+I) editor.action.showHover
預覽定義 ⌥F12 (Windows Alt+F12、Linux Ctrl+Shift+F10) editor.action.peekDefinition
在側邊開啟定義 ⌘K F12 (Windows、Linux Ctrl+K F12) editor.action.revealDefinitionAside
快速修正 ⌘. (Windows、Linux Ctrl+.) 快速修復
前往參考 ⇧F12 (Windows、Linux Shift+F12) editor.action.goToReferences
重新命名符號 F2 editor.action.rename
取代為下一個值 ⇧⌘. (Windows、Linux Ctrl+Shift+.) editor.action.inPlaceReplace.down
取代為上一個值 ⇧⌘, (Windows、Linux Ctrl+Shift+,) editor.action.inPlaceReplace.up
擴展 AST 選取範圍 ⌃⇧⌘→ (Windows、Linux Shift+Alt+Right) editor.action.smartSelect.expand
縮小 AST 選取範圍 ⌃⇧⌘← (Windows、Linux Shift+Alt+Left) editor.action.smartSelect.shrink
修剪尾隨空白 ⌘K ⌘X (Windows、Linux Ctrl+K Ctrl+X) editor.action.trimTrailingWhitespace
變更語言模式 ⌘K M (Windows、Linux Ctrl+K M) workbench.action.editor.changeLanguageMode

導覽

命令 按鍵 命令識別碼
顯示所有符號 ⌘T (Windows、Linux Ctrl+T) workbench.action.showAllSymbols
前往行... ⌃G (Windows、Linux Ctrl+G) workbench.action.gotoLine
前往檔案...,快速開啟 ⌘P (Windows、Linux Ctrl+P) workbench.action.quickOpen
前往符號... ⇧⌘O (Windows、Linux Ctrl+Shift+O) workbench.action.gotoSymbol
顯示問題 ⇧⌘M (Windows、Linux Ctrl+Shift+M) workbench.actions.view.problems
前往下一個錯誤或警告 F8 editor.action.marker.nextInFiles
前往上一個錯誤或警告 ⇧F8 (Windows、Linux Shift+F8) editor.action.marker.prevInFiles
顯示所有命令 ⇧⌘P (Windows、Linux Ctrl+Shift+P)F1 workbench.action.showCommands
瀏覽編輯器群組歷史紀錄 ⌃Tab (Windows、Linux Ctrl+Tab) workbench.action.quickOpenPreviousRecentlyUsedEditorInGroup
返回 ⌃- (Windows Alt+Left、Linux Ctrl+Alt+-) workbench.action.navigateBack
在快速輸入中返回 ⌃- (Windows Alt+Left、Linux Ctrl+Alt+-) workbench.action.quickInputBack
向前 ⌃⇧- (Windows Alt+Right、Linux Ctrl+Shift+-) workbench.action.navigateForward
聚焦於麵包屑導航 ⇧⌘; (Windows、Linux Ctrl+Shift+;) breadcrumbs.focus
聚焦並選取麵包屑導航 ⇧⌘. (Windows、Linux Ctrl+Shift+.) breadcrumbs.focusAndSelect

編輯器/視窗管理

命令 按鍵 命令識別碼
新增視窗 ⇧⌘N (Windows、Linux Ctrl+Shift+N) workbench.action.newWindow
關閉視窗 ⌘W (Windows、Linux Alt+F4) workbench.action.closeWindow
關閉編輯器 ⌘W (Windows Ctrl+F4、Linux Ctrl+W) workbench.action.closeActiveEditor
關閉資料夾 ⌘K F (Windows、Linux Ctrl+K F) workbench.action.closeFolder
在編輯器群組之間循環 workbench.action.navigateEditorGroups
分割編輯器 ⌘\ (Windows、Linux Ctrl+\) workbench.action.splitEditor
聚焦於第一個編輯器群組 ⌘1 (Windows、Linux Ctrl+1) workbench.action.focusFirstEditorGroup
聚焦於第二個編輯器群組 ⌘2 (Windows、Linux Ctrl+2) workbench.action.focusSecondEditorGroup
聚焦於第三個編輯器群組 ⌘3 (Windows、Linux Ctrl+3) workbench.action.focusThirdEditorGroup
聚焦於左側的編輯器群組 workbench.action.focusPreviousGroup
聚焦於右側的編輯器群組 workbench.action.focusNextGroup
向左移動編輯器 ⌘K ⇧⌘← (Windows、Linux Ctrl+Shift+PageUp) workbench.action.moveEditorLeftInGroup
向右移動編輯器 ⌘K ⇧⌘→ (Windows、Linux Ctrl+Shift+PageDown) workbench.action.moveEditorRightInGroup
向左移動作用中的編輯器群組 ⌘K ← (Windows、Linux Ctrl+K Left) workbench.action.moveActiveEditorGroupLeft
向右移動作用中的編輯器群組 ⌘K → (Windows、Linux Ctrl+K Right) workbench.action.moveActiveEditorGroupRight
將編輯器移至下一個群組 ⌃⌘→ (Windows、Linux Ctrl+Alt+Right) workbench.action.moveEditorToNextGroup
將編輯器移至上一個群組 ⌃⌘← (Windows、Linux Ctrl+Alt+Left) workbench.action.moveEditorToPreviousGroup

檔案管理

命令 按鍵 命令識別碼
新增檔案 ⌘N (Windows、Linux Ctrl+N) workbench.action.files.newUntitledFile
開啟檔案... ⌘O (Windows、Linux Ctrl+O) workbench.action.files.openFile
儲存 ⌘S (Windows、Linux Ctrl+S) workbench.action.files.save
全部儲存 ⌥⌘S (Windows Ctrl+K S、Linux ) saveAll
另存為... ⇧⌘S (Windows、Linux Ctrl+Shift+S) workbench.action.files.saveAs
關閉 ⌘W (Windows Ctrl+F4、Linux Ctrl+W) workbench.action.closeActiveEditor
關閉其他 ⌥⌘T (Windows、Linux ) workbench.action.closeOtherEditors
關閉群組 ⌘K W (Windows、Linux Ctrl+K W) workbench.action.closeEditorsInGroup
關閉其他群組 workbench.action.closeEditorsInOtherGroups
關閉左側群組 workbench.action.closeEditorsToTheLeft
關閉右側群組 workbench.action.closeEditorsToTheRight
全部關閉 ⌘K ⌘W (Windows、Linux Ctrl+K Ctrl+W) workbench.action.closeAllEditors
重新開啟已關閉的編輯器 ⇧⌘T (Windows、Linux Ctrl+Shift+T) workbench.action.reopenClosedEditor
保持開啟 ⌘K Enter (Windows、Linux Ctrl+K Enter) workbench.action.keepEditor
複製作用中檔案路徑 ⌘K P (Windows、Linux Ctrl+K P) workbench.action.files.copyPathOfActiveFile
在 Windows 中顯示作用中檔案 ⌘K R (Windows、Linux Ctrl+K R) workbench.action.files.revealActiveFileInWindows
在新視窗中顯示已開啟的檔案 workbench.action.files.showOpenedFileInNewWindow
與已開啟的檔案比較 workbench.files.action.compareFileWith

顯示

命令 按鍵 命令識別碼
切換全螢幕 ⌃⌘F (Windows、Linux F11) workbench.action.toggleFullScreen
切換禪模式 ⌘K Z (Windows、Linux Ctrl+K Z) workbench.action.toggleZenMode
離開禪模式 Escape Escape workbench.action.exitZenMode
放大 ⌘= (Windows、Linux Ctrl+=) workbench.action.zoomIn
縮小 ⌘- (Windows、Linux Ctrl+-) workbench.action.zoomOut
重設縮放 ⌘Numpad0 (Windows、Linux Ctrl+Numpad0) workbench.action.zoomReset
切換側邊欄可見性 ⌘B (Windows、Linux Ctrl+B) workbench.action.toggleSidebarVisibility
顯示檔案總管 / 切換焦點 ⇧⌘E (Windows、Linux Ctrl+Shift+E) workbench.view.explorer
顯示搜尋 ⇧⌘F (Windows、Linux Ctrl+Shift+F) workbench.view.search
顯示原始碼控制 ⌃⇧G (Windows、Linux Ctrl+Shift+G) workbench.view.scm
顯示執行 ⇧⌘D (Windows、Linux Ctrl+Shift+D) workbench.view.debug
顯示擴充功能 ⇧⌘X (Windows、Linux Ctrl+Shift+X) workbench.view.extensions
顯示輸出 ⇧⌘U (Windows Ctrl+Shift+U、Linux Ctrl+K Ctrl+H) workbench.action.output.toggleOutput
快速開啟檢視 ⌃Q (Windows Ctrl+Q、Linux ) workbench.action.quickOpenView
開啟新的命令提示字元 ⇧⌘C (Windows、Linux Ctrl+Shift+C) workbench.action.terminal.openNativeConsole
切換 Markdown 預覽 ⇧⌘V (Windows、Linux Ctrl+Shift+V) markdown.showPreview
在側邊開啟預覽 ⌘K V (Windows、Linux Ctrl+K V) markdown.showPreviewToSide
切換整合式終端機 ⌃` (Windows、Linux Ctrl+`) workbench.action.terminal.toggleTerminal
命令 按鍵 命令識別碼
顯示搜尋 ⇧⌘F (Windows、Linux Ctrl+Shift+F) workbench.view.search
在檔案中取代 ⇧⌘H (Windows、Linux Ctrl+Shift+H) workbench.action.replaceInFiles
切換大小寫比對 ⌥⌘C (Windows、Linux Alt+C) toggleSearchCaseSensitive
切換全字比對 ⌥⌘W (Windows、Linux Alt+W) toggleSearchWholeWord
切換使用正規表示式 ⌥⌘R (Windows、Linux Alt+R) toggleSearchRegex
切換搜尋詳細資訊 ⇧⌘J (Windows、Linux Ctrl+Shift+J) workbench.action.search.toggleQueryDetails
聚焦於下一個搜尋結果 F4 search.action.focusNextSearchResult
聚焦於上一個搜尋結果 ⇧F4 (Windows、Linux Shift+F4) search.action.focusPreviousSearchResult
顯示下一個搜尋詞彙 (Windows、Linux Down) history.showNext
顯示上一個搜尋詞彙 (Windows、Linux Up) history.showPrevious

搜尋編輯器

命令 按鍵 命令識別碼
在編輯器中開啟結果 ⌘Enter (Windows、Linux Alt+Enter) search.action.openInEditor
聚焦於搜尋編輯器輸入 Escape search.action.focusQueryEditorWidget
再次搜尋 ⇧⌘R (Windows、Linux Ctrl+Shift+R) rerunSearchEditorSearch
刪除檔案結果 ⇧⌘Backspace (Windows、Linux Ctrl+Shift+Backspace) search.searchEditor.action.deleteFileResults

偏好設定

命令 按鍵 命令識別碼
開啟設定 ⌘, (Windows、Linux Ctrl+,) workbench.action.openSettings
開啟工作區設定 workbench.action.openWorkspaceSettings
開啟鍵盤快捷鍵 ⌘K ⌘S (Windows、Linux Ctrl+K Ctrl+S) workbench.action.openGlobalKeybindings
開啟使用者程式碼片段 workbench.action.openSnippets
選取色彩主題 ⌘K ⌘T (Windows、Linux Ctrl+K Ctrl+T) workbench.action.selectTheme
設定顯示語言 workbench.action.configureLocale

偵錯

命令 按鍵 命令識別碼
切換中斷點 F9 editor.debug.action.toggleBreakpoint
開始 F5 workbench.action.debug.start
繼續 F5 workbench.action.debug.continue
開始 (不偵錯) ⌃F5 (Windows、Linux Ctrl+F5) workbench.action.debug.run
暫停 F6 workbench.action.debug.pause
逐步進入 F11 workbench.action.debug.stepInto

工作

命令 按鍵 命令識別碼
執行建置任務 ⇧⌘B (Windows、Linux Ctrl+Shift+B) workbench.action.tasks.build
執行測試任務 workbench.action.tasks.test

擴充功能

命令 按鍵 命令識別碼
安裝擴充功能 workbench.extensions.action.installExtension
顯示已安裝的擴充功能 workbench.extensions.action.showInstalledExtensions
顯示過期的擴充功能 workbench.extensions.action.listOutdatedExtensions
顯示建議的擴充功能 workbench.extensions.action.showRecommendedExtensions
顯示熱門擴充功能 workbench.extensions.action.showPopularExtensions
更新所有擴充功能 workbench.extensions.action.updateAllExtensions

後續步驟

既然您已了解我們的鍵盤快捷鍵支援,接下來...

  • 語言支援 - 我們的「良好、更佳、最佳」語言格線,讓您了解可期待的功能
  • 偵錯 - 這是 VS Code 真正發光發熱之處
  • Node.js - 具有範例應用程式的端對端 Node.js 情境

常見問題

如何找出哪個命令繫結到特定按鍵?

鍵盤快捷鍵編輯器中,您可以篩選特定按鍵組合,以查看哪些命令繫結到哪些按鍵。您可以在下方看到 Ctrl+Shift+P 繫結到顯示所有命令,以開啟命令面板。

Keyboard shortcuts quick outline

如何將鍵盤快捷鍵新增至動作,例如,將 Ctrl+D 新增至「刪除行」

預設鍵盤快捷鍵中尋找觸發動作的規則,並在您的 keybindings.json 檔案中寫入修改後的版本

// Original, in Default Keyboard Shortcuts
{ "key": "ctrl+shift+k",          "command": "editor.action.deleteLines",
                                     "when": "editorTextFocus" },
// Modified, in User/keybindings.json, Ctrl+D now will also trigger this action
{ "key": "ctrl+d",                "command": "editor.action.deleteLines",
                                     "when": "editorTextFocus" },

如何只為特定檔案類型新增鍵盤快捷鍵?

在您的 when 子句中使用 editorLangId 內容金鑰

{ "key": "shift+alt+a",           "command": "editor.action.blockComment",
                                     "when": "editorTextFocus && editorLangId == csharp" },

我已在 keybindings.json 中修改我的鍵盤快捷鍵;為什麼它們無法運作?

最常見的問題是檔案中有語法錯誤。否則,請嘗試移除 when 子句或選取不同的 key。遺憾的是,目前這是一個反覆試驗的過程。