Visual Studio Codeの操作を高速にしておこう

Rustプログラミングを行うための環境を整える話を続けてきた。もう1回だけ準備の説明を行う。前回導入したVisual Studio Codeの設定の話だ。Rustプログラミングではcargoと呼ばれるツールを使ってプロジェクトの新規作成やビルド、テスト、公開などさまざまな作業を行う。このため、Visual Studio Codeでコードを書いて、統合ターミナルでcargoを実行するといった操作をすることになる。

既にターミナルアプリケーションで似たようなことを行っているなら、今回の記事は飛ばしてもらっていいと思う。今回の話はVisual Studio Codeでそうした作業を行う場合に、マウスを使わないようにするためのものだ。

  • エディタと統合ターミナルを行ったり来たりする

    エディタと統合ターミナルを行ったり来たりする

上記のようにエディタでRustソースコードを書いて、統合ターミナルでビルドする、といった作業を繰り返す。マウスを使えばフォーカスを移動させることが可能だが、キーボードから手を離してマウスやトラックパッドを操作することはぜひとも避けたい。ショートカットキーを使って迅速に行き来ができるようにしておこう。

デフォルトのショートカットキー(Windows編)

ワークベンチ上のフォーカスの移動、エディタ間のフォーカスの移動、統合ターミナル間のフォーカスの移動、この辺りの主なデフォルトのショートカットキーをまとめると次のようになる。なお、このショートカットキーはWindowsの場合だ。OSが異なるとデフォルトのショートカットキーが異なるので、それぞれ読み替えてほしい。

コマンド 内容 キーバインド
workbench.action.focusSideBar サイドバーへ移動 Ctrl-0
workbench.action.focusFirstEditorGroup 1つ目のエディタグループへ移動 Ctrl-1
workbench.action.focusSecondEditorGroup 2つ目のエディタグループへ移動 Ctrl-2
workbench.action.focusThirdEditorGroup 3つ目のエディタグループへ移動 Ctrl-3
workbench.action.focusFourthEditorGroup 4つ目のエディタグループへ移動 Ctrl-4
workbench.action.focusFifthEditorGroup 5つ目のエディタグループへ移動 Ctrl-5
workbench.action.focusSixthEditorGroup 6つ目のエディタグループへ移動 Ctrl-6
workbench.action.focusSeventhEditorGroup 7つ目のエディタグループへ移動 Ctrl-7
workbench.action.focusEighthEditorGroup 8つ目のエディタグループへ移動 Ctrl-8
workbench.action.terminal.focus ターミナルへフォーカスを移動 (なし)
コマンド 内容 キーバインド
workbench.action.nextEditor 次のエディタへ移動 Ctrl-PgDn
workbench.action.previousEditor 前のエディタへ移動 Ctrl-PgUp
コマンド 内容 キーバインド
workbench.action.terminal.focusNext 次のターミナルへフォーカスを移動 (なし)
workbench.action.terminal.focusPrevious 前のターミナルへフォーカスを移動 (なし)

ここで使うような主なショートカットキーを図に示すと、以下のようになる。統合ターミナルへ移動する方法や、統合ターミナル間を移動する方法についてはデフォルトではショートカットキーが設定されていないことがわかる。

  • デフォルトでは統合ターミナルへ移動するショートカットキーが設定されていない

    デフォルトでは統合ターミナルへ移動するショートカットキーが設定されていない

今回、ここに新しくショートカットキーを設定する。

ショートカットキー設定の指針

Visual Studio Codeには、多くのショートカットキーが設定されている。開発を迅速に行うにはこうした多数のショートカットキーの存在が欠かせない。そこで、新しくショートカットキーを設定しようとすると、既存のショートカットキーをぶつかることが多い。つまり、既に使われているショートカットキーが多いのだ。

ここでは、次の指針で新しくショートカットキーを設定することをお薦めしたい。

  1. 既存のデフォルト・ショートカットキーに使われているショートカットキーは使わない。使うにつれてVisual Studio Codeのデフォルトショートカットキーを覚えるようになる。デフォルトのショートカットキーを他の操作のショートカットキーに割り当てると不都合が生じて、その都度、別のショートカットキーに変更するなど面倒が生じやすい。
  2. オペレーティングシステムの慣習に合わせる。オペレーティングシステムにはこうした操作の時はこのショートカットキーを使うと慣習があるので、該当する場合はなるべくそうしたショートカットキーに合わせる。
  3. 上記の条件をクリアした上で、覚えやすいショートカットキーを選ぶ。それは単語や動詞などに基づく意味からの文字キーでもいいし、打ちやすいものでもいいし、キーボードのレイアウトから覚えやすいものでもいい。日本語キーボードと英語キーボードで異なるショートカットキーのほうが使いやすいことがあり、無理によく使われている設定、例えば英語キーボードでよく使われている設定を、日本語キーボードでも利用する、といったことは行わない。
  4. 適用範囲は可能な限り狭くする。Visual Studio Codeでは条件(When)を指定することができ、「統合ターミナルにフォーカスがある時にこのショートカットキーを有効化する」といった指定ができるので、可能な限り範囲を限定して追加する。

ショートカットキーの設定は、Visual Studio Codeのメニューから「Preferences」→「Keyboard Shortcuts」を選び、該当する項目の上でタブルクリックを行い、そのあとに実際にショートカットキーを入力すればよい。Whenを指定するときは、ショートカットキーを設定したあとで、項目のメニューから「Change When Expression」を選択して編集を行う。

以降、参考までにWindowsとmacOSで設定するショートカットキーを紹介しておく。

Windowsで追加するショートカットキー

統合ターミナルへ移動するので、ターミナル(Terminal)のTをショートカットキーに使いたい。しかし、Ctrl-Tには別のショートカットキーが割り当てられているので、ここではCtrl-T Ctrl-TといったようにCtrlキーを押しながらTを2回押す方法を統合ターミナルへ移動するショートカットキーとして設定する。

ターミナルへフォーカスを移動
Command workbench.action.terminal.focus
Keybinding Ctrl-T Ctrl-T
When

統合ターミナルは1つだけではなく同時に複数開いておくことができる。統合ターミナル間の移動はターミナルを意味するTと、次(Next)を意味するN、それに前(Previous)を意味するPを使い、Ctrl-T Ctrl-Nが次の統合ターミナルへ移動、Ctrl-T Ctrl-Pを前の統合ターミナルへ移動とする。

次のターミナルへフォーカスを移動
Command workbench.action.terminal.focusNext
Keybinding Ctrl-T Ctrl-N
When terminalFocus
前のターミナルへフォーカスを移動
Command workbench.action.terminal.focusPrevious
Keybinding Ctrl-T Ctrl-P
When terminalFocus

これで、それぞれショートカットキーは次のようになる。

  • ショートカットキー設定状況

    ショートカットキー設定状況

エディタと統合ターミナルの移動に絞ってショートカットキーをまとめると、次のようになる。

  • エディタと統合ターミナルのフォーカス移動ショートカットキー(Windows)

    エディタと統合ターミナルのフォーカス移動ショートカットキー(Windows)

内容 キーバインド
サイドバーへ移動 Ctrl-0
エディタへ移動 Ctrl-1
次のエディタへ移動 Ctrl-PgDn
前のエディタへ移動 Ctrl-PgUp
ターミナルへ移動 Ctrl-T Ctrl-C
次のターミナルへ移動 Ctrl-T Ctrl-N
前のターミナルへ移動 Ctrl-T Ctrl-P

エディタと統合ターミナルの間をショートカットキーで素早く切り替える方法は、最初に手癖として覚えてしまいたいところだ。

macOSで追加するショートカットキー

macOSでも、同じ理由で統合ターミナルへの移動には⌘-T ⌘-Tを割り当てる。

ターミナルへフォーカスを移動
Command workbench.action.terminal.focus
Keybinding ⌘-T ⌘-T
When

macOSでは⌘-⇧-]と⌘-⇧-[がタブ間の移動に割り当てられていることが多い。英語キーボードでは[と]はEnterキーの左上の隣り合った位置にある。左手で⌘と⇧を押し、右手で[と]を押すことになる。直感的な横移動が可能だ。

次のターミナルへフォーカスを移動
Command workbench.action.terminal.focusNext
Keybinding ⌘-⇧-]
When terminalFocus
前のターミナルへフォーカスを移動
Command workbench.action.terminal.focusPrevious
Keybinding ⌘-⇧-[
When terminalFocus

このショートカットキーを設定すると、macOSにおけるVisual Studio Codeにおけるエディタと統合ターミナルの移動は次のようになる。エディタ間の横移動も統合ターミナル間の横移動も同じショートカットキーが使えるので便利だ。

  • エディタと統合ターミナルのフォーカス移動ショートカットキー(macOS)

    エディタと統合ターミナルのフォーカス移動ショートカットキー(macOS)

内容 キーバインド
サイドバーへ移動 ⌘-0
エディタへ移動 ⌘-1
次のエディタへ移動 ⌘-⇧-]
前のエディタへ移動 ⌘-⇧-[
ターミナルへ移動 ⌘-T ⌘-T
次のターミナルへ移動 ⌘-⇧-]
前のターミナルへ移動 ⌘-⇧-[

ただし、日本語キーボードでは、[と]はEnterキーの左に上下に配置されており、直感的な操作にならないかもしれない。その場合にはほかのアプリケーションでの設定も加味しつつ、慣れたものにしてもらえればと思う。

なるべくマウスを使わないように

コーディングを行うような作業では、作業の途中でマウスを使う機会をなるべく減らしていったほうがよいと思う。その理由として、操作が遅くなるというのもあるし、思考が途切れるというのもある。Visual Studio Codeには多くのショートカットキーホックが用意されており、慣れてくればさまざまな操作をマウスレスで行うことが可能になる。

最初は覚えることが多くて大変かもしれないが、覚えたショートカットキーは生産性の向上に寄与してくれるのは間違いのないところだ。ぜひ最初に設定を済ませてしまい、早めに慣れてもらえればと思う。