tmuxでのペインを作ったり消したり切り替えたりの動作を、VSCodeでもそれっぽく再現するために設定した項目をさらします。
tmuxのデフォルトのプレフィクスがctrl+b
なので、その設定でtmuxを操作しているときと同じような挙動をするようにkeybindings.jsonに以下の設定を加えました
ペイン
// エディタとターミナルの移動
{
"key": "ctrl+b o",
"command": "workbench.action.terminal.focus",
"when": "editorFocus"
},
{
"key": "ctrl+b o",
"command": "workbench.action.focusActiveEditorGroup",
"when": "terminalFocus"
},
// ターミナルの分割(縦のみ)
{
"key": "ctrl+b shift+'",
"command": "workbench.action.terminal.splitInActiveWorkspace"
},
// 一時的にエディタ、もしくはターミナルを全画面で表示する
{
"key": "ctrl+b z",
"command": "workbench.action.toggleMaximizedPanel",
"when": "terminalFocus"
},
{
"key": "ctrl+b z",
"command": "workbench.action.togglePanel",
"when": "editorFocus"
},
// ペインを閉じる
{
"key": "ctrl+b x",
"command": "workbench.action.terminal.kill",
"when": "terminalFocus"
},
// 上下ペインのリサイズをAlt-UpとAlt-Downに割り当てた場合
{
"key": "alt+up",
"command": "workbench.action.terminal.resizePaneUp"
},
{
"key": "alt+down",
"command": "workbench.action.terminal.resizePaneDown"
},
ウィンドウ(ターミナルの切り替え)
// 新規ターミナル作成
{
"key": "ctrl+b c",
"command": "workbench.action.terminal.new"
},
// ターミナルの切り替え (next, previous)
{
"key": "ctrl+b n",
"command": "workbench.action.terminal.focusNext"
},
{
"key": "ctrl+b p",
"command": "workbench.action.terminal.focusPrevious"
},
// ウィンドウ一覧(tmuxでいうsessionの一覧)
{
"key": "ctrl+s",
"command": "workbench.action.terminal.findNext",
},
これで少なくともペインとウィンドウの切り替えはそれっぽく模倣できましたが、tmuxはそもそもsessionが扱えるのが便利なんですが