前回は、8月にリリースされたWindows Terminal 1.2の主な新機能と、その使い方を紹介した。バージョン1.2には、前回取り上げたものに加えて、「コマンドパレット」と呼ばれる機能が追加されている。同機能は、Windows Terminalを操作するために使えるコマンドを一覧表示したり、任意のコマンドを選択して実行したりすることができるというものだ。本稿では、このコマンドパレットの基本的な使い方や、設定のカスタマイズ方法について解説する。

コマンドパレットを有効にする

バーション1.2の段階では、コマンドパレットはまだプレビュー扱いであり、デフォルトでは呼び出すためのキーボードショートカットが設定されていない。そこで、まず「setting.json」にキーボードショートカットの設定を追加する必要がある。次のようにcommandPalleteコマンドに任意のキーを設定することで、そのキーでコマンドパレットを呼び出せるようになる。

{ "command": "commandPalette", "keys": "ctrl+shift+p" }

上記の場合は、「Ctrl」+「Shift」+「p」キーを入力すると、次のように使用できるコマンドが一覧で表示される。

利用可能なコマンドが一覧表示される

コマンドパレットでは、上記のように操作の内容とショートカットキーがセットで表示されるので、もしショートカットキーを忘れてしまっても安心だ。さらに、任意のコマンドにカーソルを合わせて「Enter」キーを押すか、マウスで選択すれば、コマンドパレット上で直接コマンドを実行することもできる。例えば「ウィンドウの複製をする」を選んだ場合、新たにペインが作成されてウィンドウが2つに分割される。

上部の入力バーを使ってコマンドをフィルタリングすることもできるが、このフィルタリング機能は現時点ではあまり正しく動作しないため、使い勝手が悪い。これはバージョン1.3で改善される予定となっている。

コマンドパレットに任意のコマンドを追加する

コマンドパレットで表示される「コマンド」とは、キーボードショートカットの設定でcommandプロパティに設定することができるコマンドのことを指していると思えばよい。ショートカットが設定できるコマンドの種類については第9回の記事に掲載した一覧表などを参考にしていただきたい。

原則として、キーボードショートカットが設定されているコマンドは、自動的にコマンドパレットに追加されるようになっている。これにはsetting.jsonだけでなく「default.json」で定義されているコマンドも含まれる。言い換えれば、ショートカットキーで実行できる操作は、コマンドパレットからも実行できるということだ。

コマンドパレットに任意のコマンドを追加したい場合には、次の3つの方法のいずれかを使用すればよい。

一つ目は、通常どおりキーボードショートカットを定義する方法だ。setting.jsonにキーボードショートカットの定義があれば、自動でコマンドパレットにも追加される。ただし、この方法で追加されるのは、指定されたコマンドに対してWindows Terminalが自動で適切なコマンド名を生成できる場合に限られる。例えば、次のタブにフォーカスを移動するnextTabコマンドに対して次のようにショートカットキーを設定したとする。

{ "command": "nextTab", "keys": "alt+right" }

この場合、nextTabコマンドは以下のように自動生成された「次のタブ」という名前でコマンドパレットに追加される。

コマンド名を指定しなかった場合、自動で適切な名前が付けられる

2つ目は、次のようにnameプロパティとcommandプロパティを設定してコマンドの名前のみを定義する方法である。この場合、「name」の値に設定した名前でコマンドパレットに追加される。ただし、kyesプロパティの値を設定していないため、ショートカットキーは有効にならない。つまり、この方法で定義したコマンドは、コマンドパレットからは呼び出すことができるが、キーボードショートカットからは呼び出すことができないのだ。

{ "name": "右のタブへ移動", "command": "nextTab" }

「右のタブへ移動」はコマンドパレットからしか実行できない

3つ目の方法は、上の2つの組み合わせで、次のように「name」「command」「keys」の3つのプロパティを全て設定するというものになる。この場合、コマンドパレットには「右のタプへ移動」という名前で追加される。「Alt」+「→」のショートカットキーでも呼び出すことができる。

{ "name": "右のタブへ移動", "command": "nextTab", "keys": "alt+right" }

コマンドパレットに表示させたくない場合

前述のように、キーボードショートカットを設定したコマンドは自動的にコマンドパレットに追加されてしまう。もしショートカットキーのみ有効にして、コマンドパレットには表示したくないコマンドがある場合には、nameプロパティの値に「null」を設定すればよい。次の例では、新しいタブを追加する「newTab」コマンドをコマンドパレットに表示されないようにしている。

{ "name": null, "command": "newTab", "keys": "ctrl+shift+t" }

コマンドパレットは非常に便利な機能なので、ぜひ有効にしておくことをお勧めしたい。ただし、Windows Terminal 1.2に実装されているコマンドパレットはまだプレビューの段階であり、一部で使い勝手が悪い部分もある。次期リリースであるWindows Terminal 1.3では改善されてもっと使いやすくなる予定である。

Windows Terminalのプレビュー版であるWindows Terminal Previewではすでに改良版のコマンドパレットが利用できるので、待ちきれない人はプレビュー版のほうを利用してみるといいだろう。

参考資料