Windows Terminalの2023年第2四半期のリリースが5月24日に実施された。公開されたのは、プレビュー版v1.18と安定版v1.17である。なお、直後の30日にはそれぞれのアップデート版が公開されている。原稿執筆時点の最新版は、プレビュー版がv1.18.1462.0、安定版がv1.17.11461.0だった。本稿はこのバージョンで確認している。
プレビュー版では、タブのウィンドウ間の移動がサポートされるなど、かなり大きな改良点がある。この機能は初期から対応を予定していたが、プログラム構造などの問題で簡単ではなかったようだ。ここでは、このプレビュー版を中心に最新のWindows Terminalについて解説したい。
ZIPファイルでのアンパッケージ版の配布も開始された
安定版v1.17
最初に安定版v1.17について解説しておこう。v1.17に関しては、以前、この連載でプレビュー版として解説している。基本的な機能などは、そちらを参照していただきたい(「「Windows Terminal」「PowerToys」「Winget」 Microsoft系OSSのアップデート情報」)。機能的な違いとしては、安定版には「スクロールバーマーク機能」がまだ搭載されていないという点がある。
今回からは安定版/プレビュー版ともに配布形式に変更がある。まず、ZIPファイルによるアンパッケージ版の配布が開始された。これは、v1.17からUWPアプリではなく完全なデスクトップアプリになったからだ。アンパッケージ版は、Microsoftストアによる自動更新はない。また、Windows Terminal自体、複数のアンパッケージ版が共存可能なため、いつまでも特定のバージョンを残せるようになる。もっとも開発者でもないと、あまり役に立つ機能ではないかもしれない。
同時にアンパッケージ版は、インストールディレクトリに設定ファイルを保存する「ポータブル版」(ポータブルモード)でも、動作できるようになった。
これは、Windows Terminalのアンパッケージ版のあるフォルダに「.portable」という名前のファイル(中身はなくてよい)を作ることで切り替わる。設定は、settingsサブフォルダが自動的に作成されて、そこに保存される。ここに従来と同じくsettings.jsonファイルが置かれる。また、設定ページにポータブルモードで動作している旨のメッセージが表示される。
ポータブル版はインストールも不要で、USBメモリやネットワークドライブ、クラウドなどにおいても動作するため、ユーザーにインストール権限がない環境や、ローカルストレージに書き込みができないような環境でも動作できる。
ただし、自動更新や既定のターミナル設定などができない。また、エクスプローラーの右クリックメニューへの「ターミナルで開く」も登録されない。Windows起動時の自動起動もサポートされない。
タブをウィンドウ間で移動できるようになった
プレビュー版v1.18
プレビュー版v1.18の最大の変更点は、プログラム構造が大きく変わり、タブをウィンドウ間で移動できるようになった点だ。これまでのWindows Terminalでは、タブはウィンドウ内で前後に移動させることができるだけだった。
タブをマウスでドラッグし、他のTerminalウィンドウにあるタブバーの上付近までドラッグすると「↗移動」とアイコンが変わり、ドロップするとタブが移動する。
これにより、多数のタブを開いたとき、ウィンドウを分けて整理することも可能になる。また、コマンドパレットには、「Move tab to new window」(タブを新しいウィンドウに移動)があり、これを使って、現在のタブを新規ウィンドウに移動させることも可能だ。
この改良の副作用として、Windows Terminalはカレントフォルダをロックしなくなった。そのためエクスプローラーで自由にフォルダのリネームや削除ができるようになる。これまでは、ターミナルを終了させないと、カレントフォルダのロックが解除されなかった。ただし、フォルダ操作のシェルなどへの影響を考慮するのは、ユーザーの責任である。
また、デスクトップアプリとなったことで、システム環境変数の変化に対応できるようになった。従来は、シェル側で読み込み直ししないと、環境変数の変更には追従しなかった。合わせて、プロファイル定義で、環境変数を追加・変更できるようになった。これにより、環境変数で動作を変えるシェルへの対応や、PATH設定などが異なるプロファイルをWindows Terminalプロファイルで簡単に記述できるようになった。環境変数の変更・追加は、以下のようにする。
"environment": { "環境変数名1":"値1", "環境変数名2":"値2"},
もう1つの新機能は、右クリックメニューのサポートだ。
これまでは、右クリックメニューはサポートされていなかった。しかしv1.18では、デフォルトで編集メニュー(コピー、ペースト)や「分割ウィンドウ」「タブの複製」「タブを閉じる」が右クリックメニューに表示される。範囲の選択時には「検索」項目も出る。
右クリックメニューを有効にするには、プロファイル設定に「"experimental.rightClickContextMenu":true」を、設定する必要がある。また、この右クリックメニューは、キーボード操作にも割り当てることが可能だ。
v1.16から対応が始まったFTCSによるCommand Mark/Shell Integrationをシェル側で対応すると、このメニューに「コマンドの選択」(Select Command)と「出力の選択」(Select Output)が追加される。
FTCSとはFinal Term Command Sequencesの略で、Final Termが搭載したエスケープシーケンスである。これでコマンドラインやコマンド出力を選択状態にできるようになる。この機能は、スクロールバーマーク機能を使うため、安定版は対応していない。
具体的には、FTCSによるCommand Mark/Shell Integrationは、以下の表のようなエスケープシーケンスを、シェル出力に挿入する。場所は、プロンプトの開始、コマンドの開始、コマンド出力の終わりで、FTCSをコンソールに出力すると、Windows Terminalがバッファ内の位置を記録する。
このとき、selectCommand、selectOutputアクションでその位置へスクロールできるほか、同時に範囲が選択状態となる。必要ならクリップボードにコピー(右クリックメニューやキー割り当て)ができる。コマンドラインでは、不用意に長い出力を出してしまうコマンドを実行してしまうことがあるが、このような場合でも、コマンドラインの位置まで戻ることができる。
この連載の記事
-
第451回
PC
新しいWindowsサンドボックスではコマンドラインからの制御が可能に -
第450回
PC
ユニコードで文字数を数える方法 -
第449回
PC
WSLはプレビュー版でGUIでの設定が加わった! リリース2.3.xの新機能を見る -
第448回
PC
PowerShellで面倒なオブジェクトはPSCustomObjectに変換するのが早道 -
第447回
PC
この秋登場のWindows 11の新バージョン、Ver.24H2の状況を見る -
第446回
PC
Windows 11のフォトアプリがUWPからWin32アプリになったことで今更わかるUWPの問題点 -
第445回
PC
次期Windows 11ではAndroidのファイルをエクスプローラーからアクセス可能になる -
第444回
PC
外部ファイルをExcelに読み込む際の作業を効率化するPower Queryの活用 -
第443回
PC
Windows Terminalで採用されたCascadia Codeフォントを使うとプログラムを書くとき断然見やすい -
第442回
PC
Copilot+ PCで実現されるローカル推論で「対クラウド企業」を指向するMicrosoft -
第441回
PC
WSL以前から40年以上続く、Windows(Microsoft)とUNIXとの関わり - この連載の一覧へ