前回取り上げたコマンドパレットは、Windows Terminal 1.2の時点ではまだプレビュー扱いであり、機能的にはいろいろと不十分なところがある。次期バージョンのWindows Terminal 1.3ではより完成されたコマンドパレットが搭載される予定であり、現在はMicrosoft Storeからインストール可能なプレビュー版の「Windows Terminal Preview」で試すことができる。そこで今回はこのプレビュー版を使って、次期バージョンで利用可能になる機能を紹介したい。
Windows Terminal 1.3のコマンドパレット
前述のように、Windows Terminal PreviewはMicrosoft Storeからインストールすることができる。本稿執筆時点の最新版はバージョン1.3.2382.0だ。正規のWindows Terminalとは別アプリとしてインストールされ、プロファイルなどの設定も個別に保存されるため、普段使用するWindows Terminalに影響を与える新機能を試すことが可能だ。
Windows Terminal 1.2では初期状態ではコマンドパレットは無効化されており、自分でキーボードショートカットを登録する必要があった。1.3の場合は、「default.json」に「Ctrl」+「Shift」+「p」のショートカットの設定が追加されたため、自分で設定を書かなくてもコマンドパレットを起動できるようになる。
以下は、バージョン1.2と1.3のコマンドパレットを並べて表示したものだ。パッと見て気付くのは、コマンドの並び順が大きく違うことだろう。「[New Tab…]」や「[Split Pane…]」といったコマンドは、右側にショートカットキーではなく「>」マークが表示されている。これも1.2には無かったものだ。
試しに「[New Tab…]」をクリックしてみると、どのプロファイルで新規タブを開くのかが選択できるようになっている。このように、バージョン1.3ではコマンドパレットの項目をネストにして、1つの項目の下に複数のコマンドをグループ化できるようになった。
コマンド検索の挙動も変わっている。例えば1.2では「ウィンドウ」と入力しても候補が出なかったが、1.3ではちゃんと候補が表示されるようになった。検索についてはまだ不可思議な挙動も残ってはいるが、全体としては改善されているように見える。
コマンドラインモードを利用する
バージョン1.3のコマンドパレットで追加された重要な機能として「コマンドラインモード」がある。これは、コマンドの入力欄に、直接コマンドを入力して実行することができるモードである。コマンドを入力する場合は「$gt;」文字から開始する。
例えば、Ubuntu-20.04のプロファイルでペインを作ってウィンドウを分割するには、次のコマンドを入力すればよい。
> split-pane -p Ubuntu-20.04
すると、次のように現在のウィンドウが分割される。
コマンドパレットに入力されたコマンドは、実際にはwtコマンドによって実行される。したがって、ここで使用できるコマンドとパラメータは、wtコマンドに用意されているサブコマンドおよびそのパラメータと同様である。
例えば、Ubuntuプロファイルで初期ディレクトリとして「C:」を指定して新規タブを作成するのは次のようなコマンドになる。
> new-tab -p Ubuntu -d C:\
また次のように、コロン「;」を使って複数のコマンドを一度に入力することもできる。
> new-tab -p PowerShell; split-pane -V -p Ubuntu
この例では、まずnew-tabコマンドによってPowerShellプロファイルで新規タブが作成され、その新規タブに対してsplit-paneコマンドが適用されてUbuntuプロファイルでウィンドウが分割される。
wtコマンドのサブコマンドやターミナルパラメータについての詳細は第19回の記事で詳しく解説しているので、そちらを参照していただきたい。
サブコマンドのほかに、次のようにwtコマンドを実行することもできる。この場合、デフォルトプロファイルで新規ウィンドウが立ち上がる。
> wt
通常のwtコマンドであれば、次のようにサブコマンドとセットで用いることで、起動した時点でペインでウィンドウを分割したり複数のタブを開いたりといった指定ができる。
$ start wt 'split-pane -V -p PowerShell'
しかし、コマンドパレットで実行するwtコマンドでは、少なくとも現時点ではこのような指定はできない模様だ。シングルクォーテーション(’)を含む構文が正しく解析できないようで、エラーになってしまう。
> wt 'split-pane -V -p PowerShell'
このようにバージョン1.3のコマンドパレットは、バージョン1.2のものに比べて大幅に進化している。次回は、バージョン1.3のコマンドパレットにおけるカスタマイズの方法を紹介する。