背景
キーボードショートカットをカスタムするようになったきっかけは、インターン先の上司がvimを使っていたことです。
「マウスとトラックパッドと矢印キーを使ったら負けだよ」と冗談混じりで話す様子に憧れて、vimmerになる中間段階としてVSCodeのキーボードショートカットを多く活用するようになりました。
結果、VSCodeでもキーボードオンリーで通常のコーディングくらいならできるようになったので、一部を紹介したいと思います。
私のカスタムキーボードショートカット集
動作 | ショートカットキー | アクション名 |
---|---|---|
エディタ内のカーソル移動(上下左右) | ctrl + k / j / h / l | cursorUp/Down/Left/Right |
単語単位でカーソル移動(左右) | ctrl + cmd + h / l | cursorWordLeft/EndRight |
エクスプローラー上での移動(上下) | ctrl + k / j | list.focusUp/Down |
ファイル検索時の候補の選択(上下) | ctrl + k / j | workbench.action.quickOpenSelectNext/Previous |
ファイルの一番上/下に移動 | ctrl + cmd + k / j | cursorTop/Down |
ページアップ/ダウン | ctrl + u / d | cursorPageUp/Down |
行の先頭に移動 | ctrl + 4 | cursorHome |
行の終端に移動 | ctrl + ^ | cursorEnd |
エディタ内の文字の選択(上下左右) | ctrl + shift + k / j / h / l | cursorUp/Down/Left/RightSelect |
現在から行の先頭まで選択 | ctrl + shift + 4 | cursorHomeSelect |
現在から行の終端まで選択 | ctrl + shift + ^ | cursorEndSelect |
定義へ移動 | ctrl + Enter | editor.action.revealDefinition |
新しいディレクトリをエクスプローラー上に作成 | cmd + d | explorer.newFolder |
新しいファイルをエクスプローラー上に作成 | cmd + n | explorer.newFile |
コメントアウト | ctrl + / | editor.action.commentLine |
インデント(上げ下げ) | ctrl + [ / ] | editor.action.in/outdentLines |
保存済みのファイルタブを閉じる | ctrl + cmd + w | workbench.action.closeUnmodifiedEditors |
選択中の範囲を任意のタグで囲む | option + d | editor.emmet.action.wrapWithAbbreviation |
右のファイルタブに移動 | ctrl + , | workbench.action.nextEditor |
左のファイルタブに移動 | ctrl + m | workbench.action.previousEditor |
キーボードショートカットの設定タブを開く | option + , | workbench.action.openGlobalKeybindings |
これに追加して、既存ショートカットの活用・削除することで、個人的にとてもスムーズにコーディングができています。
既存ショートカットの一覧は、以下が参考になりました。
【Windows版】VS Code キーボードショートカット一覧 (オススメ付き)
※とても綺麗にまとまっているものがwindows版しかなく、適宜読み替える必要あり
解説
移動系はほとんど常にctrl
キーを押している状態です。
vimっぽくいうなら、ctrl
を押している間はnormal
モード、ctrl
を離すとinsert
モードという感覚だと思います。
過去にvimの拡張機能を入れることも検討したのですが、esc
やi
, :
を入力し分ける必要なく、押しやすい場所にあるctrl
の押す押さないで移動を入力を切り替えられる現在の方が快適だと感じ、そこまで重いアプリケーションも扱っていないのでVSCodeを使い続けています。
個人的に、保存済みのタブを全て閉じるショートカットと、新しいディレクトリ/ファイルをエクスプローラー上に作成するショートカットはとても便利だなと思っています(デフォルトはおそらくボタンをポチポチしないとできない)。
最後に
トラックパッドとマウスを使わず、最低限のポジションチェンジだけでコーディングできると、思った以上に効率が上がるなと感じます。
一方で、頑張ってエディタを育てた分PCが変わった時にまた一から設定し直すようなことはしたくないので、設定のjsonファイルをバックアップする必要もあります。
最後に、私のVSCodeのキーボードショートカットが設定されたkeybindings.json
を含めたdotfiles
をgithub管理しているので、暇な方はご覧ください。
https://github.com/okki-0417/dotfiles
※.vimrcなどh人に見せられるほどのものではないと自覚しているので、ご覧いただく場合は温かい目でご覧ください