キーバインディング

Visual Studio Codeでは、ほとんどのタスクをキーボードから直接実行することが可能です。このページでは、デフォルトのバインディング(キーボードショートカット)とその更新方法を説明します。

Note: このページではアクセスしたプラットフォームのキーを表示します。他のプラットフォームを表示したい場合はマウスホバーしてください。

エディターのキーボードショートカット

Visual Studio Codeはキーボードショートカットエディターを使用して、豊富で簡単なキーボードショートカットの編集ができます。これはキーバインドの有無にかかわらず使用可能なすべてのコマンドを一覧表示して、使用可能なアクションを使用してキーバインドを簡単に変更/削除/リセットできます。また上部には、コマンドやキーバインドの検索に役立つ検索窓があります。 ファイル(Code) > 基本設定 > キーボード ショートカットに移動してキーボードショートカットを構成します。

Keyboard Shortcuts

ここで最も重要なのは、キーボードレイアウトに合わせてキーバインドを確認できることです。例えばドイツ語に変更された場合、USレイアウトで表されるcmd+\キーはctrl+shift+alt+cmd+7と表します。キーバインドを入力するダイアログでは、キーボードレイアウトごとに正しいキーボードバインドを割り当てます。

より高度なキーボードショートカットのカスタマイズをするにはAdvanced Customizationsを参照してください。

キーマップの拡張機能

キーボード ショートカットは生産性にとって不可欠です。ですがキーボードの習慣を変えるのは難しいものです。この問題に対処するために ファイル > 基本設定 > キーマップ拡張機能では、一般的なキーマップ拡張機能のリストを用意しています。これら拡張機能は、VS Codeのショートカットを他のエディタのショートカットと一致するように変更できるので、新しいキーボードショートカットを習得する必要はありません。MarketplaceでKeymaps category をより詳細に確認してください。

キーボード ショートカットの参照

印刷可能なキーボードショートカットリストを用意しています。ヘルプ > キーボード ショートカットの参照で印刷に最適化されたPDFバージョンを表示します。

各プラットホーム別のリンクは次の通りです:

キーバインドの競合の検出

多くの拡張機能がインストールされている場合や、ショートカットのカスタマイズをしている場合に、同じキーボードショートカットへ複数のコマンドをマッピングしていると、競合が発生することがあります。これにより特にエディターの移動で異なるキーバインドが実行され、混乱を招く可能性があります。

キーボードショートカットエディターには、ショートカットの競合をフィルターして表示するコンテキストメニューの競合の表示があります。

show keybinding conflicts menu

多重に定義されていると思うキーバインドを使用するコマンドを選択して、複数のコマンドが定義されているかどうか、キーバインドのソース、いつアクティブになるかを確認できます。

show keybinding conflicts result

Default Keyboard Shortcuts

Note: 次のキーは標準のUSキーボードを想定してレンタリングしています。異なったキーボードレイアウトを使用する場合はここを参照してください。現在アクティブなキーボードショートカットはVS Code内(コマンドパレット (表示 -> コマンドパレット)かキーボードショートカットエディター(ファイル > 基本設定 > キーボードショートカット))で表示することができます。

基本編集

(※VS Code i18nから引用し対応していない場合英文のままです

KeyCommandCommand id
⌘X (Windows, Linux Ctrl+X)切り取りeditor.action.clipboardCutAction
⌘C (Windows, Linux Ctrl+C)コピーeditor.action.clipboardCopyAction
⇧⌘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
⌘D (Windows, Linux Ctrl+D)選択した項目を次の一致項目に追加editor.action.addSelectionToNextFindMatch
⌘K ⌘D (Windows, Linux Ctrl+K Ctrl+D)最後に選択した項目を次の一致項目に移動editor.action.moveSelectionToNextFindMatch
⌘U (Windows, Linux Ctrl+U)Undo last cursor operationcursorUndo
⇧⌥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
⌘I (Windows, Linux Ctrl+I)Select current lineexpandLineSelection
⌥⌘↓ (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
HomeGo to Beginning of LinecursorHome
EndGo to End of LinecursorEnd
⌘↓ (Windows, Linux Ctrl+End)Go to End of FilecursorBottom
⌘↑ (Windows, Linux Ctrl+Home)Go to Beginning of FilecursorTop
⌃PageDown (Windows, Linux Ctrl+Down)Scroll Line DownscrollLineDown
⌃PageUp (Windows, Linux Ctrl+Up)Scroll Line UpscrollLineUp
⌘PageDown (Windows, Linux Alt+PageDown)Scroll Page DownscrollPageDown
⌘PageUp (Windows, Linux Alt+PageUp)Scroll Page UpscrollPageUp
⌥⌘[ (Windows, Linux Ctrl+Shift+[)折りたたみeditor.fold
⌥⌘] (Windows, Linux Ctrl+Shift+])展開editor.unfold
⌘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
⌘G (Windows, Linux F3)次を検索editor.action.nextMatchFindAction
⇧⌘G (Windows, Linux Shift+F3)前を検索editor.action.previousMatchFindAction
⌥Enter (Windows, Linux Alt+Enter)Select All Occurrences of Find Matcheditor.action.selectAllMatches
⌥⌘C (Windows, Linux Alt+C)Toggle Find Case SensitivetoggleFindCaseSensitive
⌥⌘R (Windows, Linux Alt+R)Toggle Find RegextoggleFindRegex
⌥⌘W (Windows, Linux Alt+W)Toggle Find Whole WordtoggleFindWholeWord
⌃⇧M (Windows, Linux Ctrl+M)Tabキーを切り替えるとフォーカスが移動しますeditor.action.toggleTabFocusMode
空白文字の表示の切り替えtoggleRenderWhitespace
⌥Z (Windows, Linux Alt+Z)Toggle Word Wrapeditor.action.toggleWordWrap

言語編集

KeyCommandCommand id
⌃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)Format Documenteditor.action.formatDocument
⌘K ⌘F (Windows, Linux Ctrl+K Ctrl+F)Format Selectioneditor.action.formatSelection
F12定義へ移動editor.action.goToDeclaration
⌘K ⌘I (Windows, Linux Ctrl+K Ctrl+I)ホバーの表示editor.action.showHover
⌥F12 (Windows Alt+F12, Linux Ctrl+Shift+F10)定義をここに表示editor.action.previewDeclaration
⌘K F12 (Windows, Linux Ctrl+K F12)定義を横に開くeditor.action.openDeclarationToTheSide
⌘. (Windows, Linux Ctrl+.)クイック修正editor.action.quickFix
⇧F12 (Windows, Linux Shift+F12)すべての参照の検索editor.action.referenceSearch.trigger
F2シンボルの名前を変更editor.action.rename
⇧⌘. (Windows Ctrl+Shift+., Linux Ctrl+Shift+[intlbackslash])次の値に置換editor.action.inPlaceReplace.down
⇧⌘, (Windows Ctrl+Shift+,, Linux Ctrl+[intlbackslash])前の値に置換editor.action.inPlaceReplace.up
⌃⇧⌘→ (Windows, Linux Shift+Alt+Right)選択範囲を拡大editor.action.smartSelect.grow
⌃⇧⌘← (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

ナビゲーション

KeyCommandCommand id
⌘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.next
⇧F8 (Windows, Linux Shift+F8)前のエラーまたは警告へ移動editor.action.marker.prev
⇧⌘P (Windows, Linux Ctrl+Shift+P)すべてのコマンドの表示workbench.action.showCommands
⌃⇧Tab (Windows, Linux Ctrl+Shift+Tab)グループ内の最近使用したエディターのうち前のエディターを開くworkbench.action.openPreviousRecentlyUsedEditorInGroup
⌃- (Windows Alt+Left, Linux Ctrl+Alt+-)前に戻るworkbench.action.navigateBack
⌃⇧- (Windows Alt+Right, Linux Ctrl+Shift+-)次に進むworkbench.action.navigateForward

エディター/ウィンドウ管理

KeyCommandCommand id
⇧⌘N (Windows, Linux Ctrl+Shift+N)新しいウィンドウworkbench.action.newWindow
⇧⌘W (Windows Ctrl+Shift+W, Linux Ctrl+W)ウィンドウを閉じる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)1番目のエディター グループにフォーカスworkbench.action.focusFirstEditorGroup
⌘2 (Windows, Linux Ctrl+2)2番目のエディター グループにフォーカスworkbench.action.focusSecondEditorGroup
⌘3 (Windows, Linux Ctrl+3)3番目のエディター グループにフォーカスworkbench.action.focusThirdEditorGroup
⌘K ⌘← (Windows, Linux Ctrl+K Ctrl+Left)前のグループにフォーカスworkbench.action.focusPreviousGroup
⌘K ⌘→ (Windows, Linux Ctrl+K Ctrl+Right)次のグループにフォーカス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

ファイル管理

KeyCommandCommand id
⌘N (Windows, Linux Ctrl+N)無題の新規ファイルworkbench.action.files.newUntitledFile
Ctrl+Oファイルを開く…workbench.action.files.openFile
⌘S (Windows, Linux Ctrl+S)保存workbench.action.files.save
⌥⌘S (Windows Ctrl+K S, Linux )すべて保存workbench.action.files.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
⌃Tab (Windows, Linux Ctrl+Tab)グループ内の最近使用したエディターのうち次のエディターを開くworkbench.action.openNextRecentlyUsedEditorInGroup
⌃⇧Tab (Windows, Linux Ctrl+Shift+Tab)グループ内の最近使用したエディターのうち前のエディターを開くworkbench.action.openPreviousRecentlyUsedEditorInGroup
⌘K P (Windows, Linux Ctrl+K P)アクティブ ファイルのパスのコピーworkbench.action.files.copyPathOfActiveFile
⌘K R (Windows, Linux Ctrl+K R)Windowsエクスプローラーでアクティブファイルを表示するworkbench.action.files.revealActiveFileInWindows
⌘K O (Windows, Linux Ctrl+K O)新しいウィンドウでアクティブ ファイルを開くworkbench.action.files.showOpenedFileInNewWindow
アクティブ ファイルを比較workbench.files.action.compareFileWith

表示

KeyCommandCommand id
⌃⌘F (Windows, Linux F11)全画面表示の切り替えworkbench.action.toggleFullScreen
⌘K Z (Windows, Linux Ctrl+K Z)Zen Modeの切り替えworkbench.action.toggleZenMode
Escape EscapeLeave Zen Modeworkbench.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
⇧⌘D (Windows, Linux Ctrl+Shift+D)デバッグの表示workbench.view.debug
⌃⇧G (Windows, Linux Ctrl+Shift+G)ソース管理を表示workbench.view.scm
⇧⌘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 )Quick Openビューworkbench.action.quickOpenView
⇧⌘F (Windows, Linux Ctrl+Shift+F)検索の表示workbench.view.search
⇧⌘H (Windows, Linux Ctrl+Shift+H)複数のファイルで置換workbench.action.replaceInFiles
⇧⌘J (Windows, Linux Ctrl+Shift+J)Toggle Search Detailsworkbench.action.search.toggleQueryDetails
⇧⌘C (Windows, Linux Ctrl+Shift+C)新しいコマンドプロントを開くworkbench.action.terminal.openNativeConsole
⇧⌘V (Windows, Linux Ctrl+Shift+V)Toggle Markdown Previewmarkdown.showPreview
⌘K V (Windows, Linux Ctrl+K V)Open Preview to the Sidemarkdown.showPreviewToSide
⌃` (Windows, Linux Ctrl+`)統合端末の切り替えworkbench.action.terminal.toggleTerminal

基本設定

KeyCommandCommand id
⌘, (Windows, Linux Ctrl+,)ユーザー設定を開くworkbench.action.openGlobalSettings
ワークスペース設定を開く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

デバッグ

KeyCommandCommand id
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
⇧F11 (Windows, Linux Shift+F11)ステップ アウトworkbench.action.debug.stepOut
F10ステップ オーバーworkbench.action.debug.stepOver
⇧F5 (Windows, Linux Shift+F5)停止workbench.action.debug.stop
⌘K ⌘I (Windows, Linux Ctrl+K Ctrl+I)ホバーの表示editor.debug.action.showDebugHover

タスク

KeyCommandCommand id
⇧⌘B (Windows, Linux Ctrl+Shift+B)Run Build Taskworkbench.action.tasks.build
Run Test Taskworkbench.action.tasks.test

拡張機能

KeyCommandCommand id
拡張機能のインストール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内すべてのキーボードショートカットはkeybindings.jsonファイルでカスタマイズすることができます。

  • キーボードショートカットをで設定するには、Keyboard Shortcutsエディターを開き、keybindings.jsonをクリックします。
  • これにより、左側に既定のキーバインドと右側にkeybindings.jsonファイルを開きます。右側のファイルで既定のキーバインド設定を上書きできます 。
  • なお上記のリストは完全なものではありません。既定のキーボードショートカット下の”Here are other available commands”でより多くを確認できます。

キーボードのルール

キーボードショートカットの割り当ては、JSONによるルールのリストを分析することによって行われます。いくつかの例を次に示します:

// Keybindings that are active when the focus is in the editor
{ "key": "home", "command": "cursorHome", "when": "editorTextFocus" },
{ "key": "shift+home", "command": "cursorHomeSelect", "when": "editorTextFocus" },
// Keybindings that are complementary
{ "key": "f5", "command": "workbench.action.debug.continue", "when": "inDebugMode" },
{ "key": "f5", "command": "workbench.action.debug.start", "when": "!inDebugMode" },
// Global keybindings
{ "key": "ctrl+f", "command": "actions.find" },
{ "key": "alt+left", "command": "workbench.action.navigateBack" },
{ "key": "alt+right", "command": "workbench.action.navigateForward" },
// Global keybindings using chords (two separate keypress actions)
{ "key": "ctrl+k enter", "command": "workbench.action.keepEditor" },
{ "key": "ctrl+k ctrl+w", "command": "workbench.action.closeAllEditors" },

各ルールは次の通りです:

  • key : 押されるキー
  • command : 実行するコマンドID
  • when(オプション) : 現在のコンテキストに応じて評価されるブール式を含める値

Chord(別個のキー操作)は、2つのキーをスペースで区切って記述します。E.g.: ctrl+k ctrl+c

キーが押されたとき:

  • ルールは下から上に評価します。
  • keywhenが条件に一致した最初のルールを利用します。
  • それ以降のルールは処理しません。
  • ルールが一致したうえでcommandをセットしていれば、そのcommandを実行します。

追加のkeybindings.jsonルールは実行時に既定ルールの最後に追加され、既定のルールを上書きします。keybindings.jsonファイルはVS Codeで監視するので、実行中でもルールを更新できます。

利用可能なキー

keyは修飾子とキーで構成します。

次の修飾子を受け付けます:

PlatformModifiers
Macctrl+, shift+, alt+, cmd+
Windowsctrl+, shift+, alt+, win+
Linuxctrl+, shift+, alt+, meta+

次のキーを受け付けます:

  • f1-f19, a-z, 0-9
  • `, -, =, [, ], \, ;, ', ,, ., /
  • left, up, right, down, pageup, pagedown, end, home
  • tab, enter, escape, space, backspace, delete
  • pausebreak, capslock, insert
  • numpad0-numpad9, numpad_multiply, numpad_add, nupad_separator
  • numpad_subtract, numpad_decimal, numpad_divide

コマンドの引数

引数を指定してコマンドを呼びだすことができます。多くの場合、特定のファイルやフォルダー上で同じ操作を実行する場合に便利です。

既存のEnterキーを上書きする例です:

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

“command”: “type” により、Enterキーが入力されると {“text”: “Hello World”} を最初の引数として受け取り、”Hello World” をエディターに出力する動作となります。

when節のコンテキスト

VS Codeはオプションのwhen節を通して、キーバインディングの有効タイミングを細かく制御できます。なおwhenを設定していないキーバインディングは常に利用可能です。

次はtrue/falseのブーリアン式で評価可能なwhen節のコンテキスト例です:

Context nameTrue when
Editor contexts
editorFocusエディターにテキストまたはウィジェットいずれかのフォーカスがあるとき
editorTextFocusエディター内のテキストにフォーカスがあるとき(カーソル点滅)
editorHasSelectionエディター内のテキストを選択しているとき
editorHasMultipleSelectionsテキストを複数選択しているとき(マルチカーソル)
editorReadOnlyエディターが読み取り専用のとき
editorLangIdエディターの言語IDが一致するとき(e.g."editorLangId == typescript")
textCompareEditorVisibleDiff(compare)ビューを表示しているとき
Mode contexts
inDebugModeデバッグセッションを実行しているとき
inSnippetModeスニペットモード内のとき
inQuickOpenQuick Openドロップダウンにフォーカスがあるとき
Explorer contexts
explorerViewletVisibleエクスプローラービューを表示しているとき
explorerViewletFocusエクスプローラービューにキーボードフォーカスがあるとき
filesExplorerFocusファイルエクスプローラーセクションにキーボードフォーカスがあるとき
openEditorsFocus開いているエディターセクションにキーボードフォーカスがあるとき
explorerResourceIsFolderエクスプローラー内のフォルダーを選択しているとき
Editor widget contexts
findWidgetVisibleエディター検索ウィジェットを表示しているとき
suggestWidgetVisible提案ウィジェット(IntelliSense)を表示しているとき
suggestWidgetMultipleSuggestions複数の提案を表示しているとき
renameInputVisible名前の変更ボックスを表示しているとき
referenceSearchVisibleすべての参照を検索ウィンドウを開いているとき
inReferenceSearchEditorすべての参照を検索ウィンドウにフォーカスがあるとき
config.editor.stablePeekピークエディター(キープ)を開いているとき(editor.stablePeek設定によって制御されます)
quickFixWidgetVisibleクイック修正を表示しているとき
parameterHintsVisibleパラメーターヒントを表示しているとき(editor.parameterHints設定によって制御されます)
parameterHintsMultipleSignatures複数のパラメーターヒントを表示しているとき
Integrated terminal contexts
terminalFocus統合端末にフォーカスがあるとき
Global UI contexts
resourceLangIdエクスプローラーもしくはエディターのタイトル言語IDが一致しているとき(e.g."resourceLangId == markdown")
resourceFilenameエクスプローラーもしくはエディターのファイル名が一致しているとき(e.g."resourceFilename == gulpfile.js")
globalMessageVisibleVS Code上部のメッセージを表示しているとき
searchViewletVisible検索ビューを開いているとき
replaceActive検索ビューの置換ボックスを開いているとき
Configuration settings contexts
config.editor.minimap.enablededitor.minimap.enabled設定がtrueのとき

Note: 任意のユーザーまたはワークスペース設定で接頭辞"config."を持つブール値を使用できます。

上記のリストは完全なものではありません。既定のキーボードショートカットwhenコンテキストを確認してください。

特定のキーバインド ルールを削除

既定のキーバインドを削除するキーバインド ルールを記述できます。keybindings.jsonではVS Codeのすべてのキーバインドを再定義することが可能です。ですがTabEscapeといったキーの一部を微調整をするには向きません。特定のキーバインディングを削除するにはcommand-を追加します。これによりルールは削除ルールにかわります。

例を次に示します:

// In Default Keyboard Shortcuts
...
{ "key": "tab", "command": "tab", "when": ... },
{ "key": "tab", "command": "editor.emmet.action.expandAbbreviation", "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": "-editor.emmet.action.expandAbbreviation" }

キーボードレイアウト

Note: このセクションはキーバインディングにのみ関連し、エディタでの入力には関係しません。

上記のキー(印刷文字?)は仮想キーの文字列表現であり、押したときに入力される文字と必ずしも関連しません。詳細:

  • 参考: Virtual-Key Codes (Windows)
  • tab for VK_TAB (0x09)
  • ; for VK_OEM_1 (0xBA)
  • = for VK_OEM_PLUS (0xBB)
  • , for VK_OEM_COMMA (0xBC)
  • - for VK_OEM_MINUS (0xBD)
  • . for VK_OEM_PERIOD (0xBE)
  • / for VK_OEM_2 (0xBF)
  • ` for VK_OEM_3 (0xC0)
  • [ for VK_OEM_4 (0xDB)
  • \ for VK_OEM_5 (0xDC)
  • ] for VK_OEM_6 (0xDD)
  • ' for VK_OEM_7 (0xDE)
  • etc.

異なったキーボードレイアウトを使用すると、上記の仮想キーの位置が変わっていたり押したときに挿入する文字が異なったりします。異なるキーボードレイアウトを使用する場合、Visual Studio Codeは次の処理を行います:

すべてのキーバインディングは、現在のシステムのキーボードレイアウトを使用してUIに表示します。たとえば、フランス語のキーボードレイアウトを使用しているときの Split EditorCtrl+*としてレンダリングします:

render key binding

keybindings.jsonを編集するとき、VS Codeは標準のUSキーボードレイアウトで生成された文字で表現します。現在のシステムキーボードレイアウトで異なる印字のキーを押す必要がある場合はそのキーバインディングを強調表示します。たとえばフランスのキーボードレイアウトを使用するときの既定のキーバインドルールは次のようになります:

keybindings.json guidance

またkeybindings.jsonを編集するときにキーバインドルール追加を助けるウィジェットがあります。このウィジェットを起動するには、 ⌘K ⌘K (Windows, Linux Ctrl+K Ctrl+K)を押します。ウィジェットは、VSのコードは、現在のキーボードレイアウトの下で検出されたキーをキーの押下を待機し、テキストボックスに、それ以下のシリアル化されたJSON表現をレンダリングします。キーの組み合わせを入力しおえたらEnterを押してルールを挿入します。

key binding widget

Note: Visual Studio Codeは起動時に現在のキーボードレイアウトを検出して、この情報をキャッシュします。ですからキーボードレイアウトを変更した場合は、VS Codeの再起動をお勧めします。

次のステップ

今回キーバインドサポートについて確認できました。次は何を…

  • Language Support - Our Good, Better, Best language grid to see what you can expect
  • Debugging - This is where VS Code really shines
  • Node.js - End to end Node.js scenario with a sample app

よくある質問

Q: どのコマンドがキーにバインドされているかを調べるにはどうすればいいですか?

A: 既定のキーボードショートカットで⇧⌘O (Windows, Linux Ctrl+Shift+O)
を押して Quick Outlineを開きます。

Key bindings quick outline

Q: 行を削除するCtrl+Dのようなアクションをキーバインドに追加するにはどうすればいいですか?

A: 既定のキーボード ショートカットのアクションをトリガするルールを見つけて、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" },

Q: どのようにして特定ファイルタイプのキーバインドを追加できますか?

A: when節にeditorLangIdコンテキストキーを使用します:

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

Q: キーバインディングをkeybindings.jsonで変更しましたが機能しません

A: 最もよくある問題はファイルの構文エラーです。 そうでなければ when節を削除するか、別のkeyを選んでみてください。残念ながら現時点では、このように試行錯誤するしかありません。

cb7fea9ffdf45442cba2666b4855d70339685bba