目的
VS Code で Editor と Terminal をショートカット1つで交互に切り替えたい!

現状だとクリックで切り替えるか、クイックオープン(Ctrl/Cmd + P)で view hoge と打つなど、Editor と Terminal にそれぞれ別のコマンドで移動せねばならず、少々ストレスを感じていました。
結論
結論としては、下記コードの "ctrl+j" の部分を適宜好みのショートカットに変更して keybindings.json に追加すれば実現できます!
[
{
"key": "ctrl+j",
"command": "workbench.action.terminal.focus",
"when": "!terminalFocus"
},
{
"key": "ctrl+j",
"command": "workbench.action.focusActiveEditorGroup",
"when": "terminalFocus"
}
]
詳細な方法1
- コマンドパレットから
Preferences: Open Keyboard Shortcuts (JSON)を開く
2.Ctrl/Cmd+Shift+P
3.oksjと入力し、Preferences: Open Keyboard Shortcuts (JSON)を選択 - 上記コードをコピペ(もしMacなら)
これで設定したショートカットキー(上の例だと Ctrl + J)で Editor と Terminal が切替可能になりました![]()
解説
以下の2つの設定を同じショートカットキーに割り当てることで1つのショートカットキーによるフォーカスの切り替えを実現しています。
- フォーカスが
TerminalにあるときはEditorにフォーカス - フォーカスが
Terminalに無いときはTerminalにフォーカス
そのため、フォーカスがEditorでもTerminalでもない場所にあるとき、例えばサイドパネルにあるときとかもこのショートカットで Terminal に飛ぶようになります。
(VS Codeのショートカットキー編集機能が優秀すぎる...)
補足
ショートカットキーをCtrl + Jに割り当てる場合、元の Toggle Panel のショートカットがなくなります。
そのためこのショートカットを使う場合は以下のように設定を追加しておくと Ctrl + Shift + J で使えるようになるため、便利かもしれません。
[
{
"key": "ctrl+j",
"command": "workbench.action.terminal.focus",
"when": "!terminalFocus"
},
{
"key": "ctrl+j",
"command": "workbench.action.focusActiveEditorGroup",
"when": "terminalFocus"
},
{
"key": "ctrl+shift+j",
"command": "workbench.action.togglePanel"
},
{
"key": "ctrl+j",
"command": "-workbench.action.togglePanel"
}
]
一番下の設定は元のコマンドを無効化するものです。
なくても問題なく動きますが、わかりやすさのために追加しています。
以上になります。
皆さんぜひ快適なVS Codeライフを![]()
-
コマンドパレットから
Preferences: Open Keyboard Shortcuts(JSONと付いていない方)を開く(Ctrl/Cmd+K→Ctrl/Cmd+S)ことで、GUI操作で設定することも可能 ↩