動機
VSCodeって、エディタ上から特定のフォルダにファイルを新規作成する時、
- エクスプローラーでフォルダを選択
- 上の方にあるファイル作成ボタンをクリック
- ファイル名を入力
- エンター
っていう手順を踏む必要があります。
ファイルを作成するときに、マウスを触らないといけないのは辛いのです。
そこで、ある程度の基本的な操作は、マウスを触らずともできるようにキーマップを弄りました。
Qiitaで共有する理由は、「エクスプローラー上からファイルをエディタグループに開く」という処理が中々見つからなかったためです。
処理とその設定
emacsっぽい移動と、Atomっぽいファイルの作成にしました。
focusの上下方向の移動
{
"key": "ctrl+p",
"command": "selectPrevSuggestion",
"when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus"
},
{
"key": "ctrl+n",
"command": "list.focusDown",
"when": "explorerViewletFocus && listFocus &&explorerViewletVisible && !inputFocus"
}
フォルダの展開と折りたたみ
{
"key": "ctrl+b",
"command": "list.collapse",
"when": "explorerViewletFocus && listFocus &&explorerViewletVisible && !inputFocus"
},
{
"key": "ctrl+f",
"command": "list.expand",
"when": "explorerViewletFocus && listFocus &&explorerViewletVisible && !inputFocus"
}
ファイル作成とフォルダ作成
エクスプローラー上で、作成したい場所まで移動してから、コマンド入力
{
"key": "a",
"command": "explorer.newFile",
"when": "explorerViewletFocus && listFocus &&explorerViewletVisible && !inputFocus"
},
{
"key": "shift+a",
"command": "explorer.newFolder",
"when": "explorerViewletFocus && listFocus &&explorerViewletVisible && !inputFocus"
}
ファイルの削除とリネーム
削除の際に、確認画面が出ます。
この確認画面ですが、向こうにすることができます。
また、向こうにしたくない場合、OS側の設定(mac)でtabキーとspaceキーで選択できるように設定できます。
{
"key": "d",
"command": "deleteFile",
"when": "explorerViewletFocus && listFocus &&explorerViewletVisible && !inputFocus"
},
{
"key": "ctrl+enter",
"command": "renameFile",
"when": "explorerViewletFocus && listFocus &&explorerViewletVisible && !inputFocus"
}
エクスプローラとエディタの移動
私は、エクスプローラへの移動は、quickOpenViewを開いて、キーから手を離す(一番上が選択される)というキーマップでやってます
{
"key": "ctrl+q",
"command": "workbench.action.quickOpenView",
},
{
"key": "escape",
"command": "workbench.action.focusActiveEditorGroup",
"when": "explorerViewletFocus && listFocus &&explorerViewletVisible && !inputFocus"
}
focusが当たっているファイルを開く
こんな簡単なコマンドがなかなか見つけられなかった……。
ちなみに、フォルダに対して行うと展開します。
{
"key": "enter",
"command": "list.select",
"when": "explorerViewletFocus && listFocus &&explorerViewletVisible && !inputFocus"
}
終わりに
他にも、こういう操作便利じゃない?とかあったら、コメントくださるとうれしいです。