1. トップ
  2. 新着ニュース
  3. IT
  4. IT総合

内部的な改良で便利になったWindows Terminal v1.19での新機能を確認

ASCII.jp / 2023年10月15日 10時0分

Windows Terminalにプレビュー版のv.1.19が登場

 9月末にWindows Terminalのプレビュー版(v1.19)と安定版(v1.18)が公開された。今回は、このプレビュー版の機能を中心に見ていくことにする。

 公開されたのは、プレビュー版のv1.19.2682.0、安定版のv1.18.2681.0だ。プレビュー版はすでにMicrosoftストアでの配布が開始されているが、原稿執筆時点での安定版の配布はまだ始まっていない。通常は1週間ぐらいで、不具合を修正したバージョンが登場するため、安定版を常用しているのであれば、これを待ったほうがいいだろう。

 安定版は、5月にプレビュー版として公開されたv1.18をベースに、v1.19に搭載されたいくつかの改良点を含む。ただし、スクロールバーマークとシェル統合機能は安定版には含まれない。安定版での最大の特徴は、タブをウィンドウから切り離し、ウィンドウ間で移動できるようにした点など。v1.18での改良点に関しては、以下の記事を参照してほしい(「タブのウィンドウ間の移動も可能に! Windows Terminal v1.17/v1.18の新機能を見る」)。

v1.19における新機能

 今回の改良点には、実験的な機能である「入力提案UI」「ブロードキャストモード」に加え、検索ボックスやメニューの改良のほか、起動オプションの追加など。そのほかに内部的な変更もある。

 内部的な変更では、cookedモードや入力バッファ制御などがあるようだ。これらは直接目には見えないが、具体的な効果も存在する。v1.18までは、一部の言語のREPL(Read-Eval-Print Loop)のポップアップなどが正しく動作しないことがあった。具体的には、Ruby言語のirbコマンドなどだ。irbには、入力コマンドをポップアップメニューで補完する機能があるのだが、ポップアップが出ると、入力行が飛ぶことがあった。しかし、これがv1.19では正しく動作するようになった。

 次に目に見えるところから解説していこう。「入力提案UI」は、シェルと連携し、キー入力時の補完などを表示するユーザーインターフェースを表示できるようにするものだ。

Windows Terminal v1.19
「入力提案UI」は、シェルと連携して補完候補などを表示するWindows Terminal組み込みのユーザーインターフェース部品。VTエスケープシーケンスで表示できるが、これ自体は、右クリックメニューなどと同じくグラフィックスで描画される

 多くのシェルは、入力時に補完をする機能を持つが、このときに利用できるメニューがWindows Terminalに用意され、VTエスケープシーケンスでの表示が可能。ただし、現時点では実験的機能と位置づけられていて、PowerShell用のサンプルがある程度でしかない。詳細に関しては、以下のページを参照していただきたい。

●Experimental Shell Completion Menu(英語)  https://github.com/microsoft/terminal/wiki/Experimental-Shell-Completion-Menu

 「ブロードキャストモード」は、タブ内の複数のペインに同時にキー入力をする。複数のペインに同じキーを同時に渡せる。これは、ソフトウェアの評価やベンチマークなどで、複数のシェルなどを同時に操作する場合に利用できる。

 メニューの改良では、メインメニューのプロファイル上での右クリックで、「管理者として実行」サブメニューを表示するようになった。

Windows Terminal v1.19
メニューのプロファイルを右クリックすると、「管理者として実行する」を表示する。これで、キーを使わずに管理者としてプロファイルを起動できる

 従来もCtrlキーを押しながらの左クリックで、プロファイルを管理者で実行できた。しかし、今回の改良により、キーボードを使わずにメニューのみで管理者としてプロファイルを起動可能になった。なお、この機能は安定版v1.18にバックポートされている。

 また、タブ上の右クリックメニューに「タブを新しいウィンドウに移動」という項目が加わった。これを使うことで、タブを簡単に新しいウィンドウで開くことが可能になる。

Windows Terminal v1.19
タブの右クリックメニューに「タブを新しいウィンドウに移動」が追加されている

 検索ボックスでは、検索結果総数を表示し、現在何番目の結果を選択しているのかを表示できるようになった。

Windows Terminal v1.19
検索ボックスは、発見したキーワード数と選択中のキーワードの出現番号を表示できるようになった

 settings.json内で利用できる新しい設定項目が追加されている。この中には、Web検索をする機能がある。この機能にはコンテキストメニューから選択範囲をWeb検索する方法と、キー割り当てにより選択範囲をWeb検索する方法がある。

Windows Terminal v1.19

 コンテキストメニューにWeb検索を追加するには、プロファイル設定で、右クリックメニューを有効にする。

Windows Terminal v1.19
範囲を選択していると、右クリックに「Web検索」が追加され、これによりブラウザを起動して選択範囲のインターネット検索が可能になる

"experimental.rightClickContextMenu": true

 デフォルトでは、bing.comを使ったWeb検索が行われるが、検索URLを指定するには、グローバル設定で「searchWebDefaultQueryUrl」にURLパターンを指定する。デフォルト値は、

"searchWebDefaultQueryUrl": "https://www.bing.com/search?q=%22%s%22"

となっている。検索エンジンを変更したい場合には、これを書き換えて使う。たとえば、Googleを使うなら

"searchWebDefaultQueryUrl": "https://www.google.com/search?q=%22%s%22"

とする。

 キーボードからWeb検索をする場合、以下のキー割り当てを定義する。

{ "command": { "action": "searchWeb","queryUrl": "https://www.google.com/search?q=%s" }, "keys": "ctrl+alt+shift+q" },

 この設定では、範囲を選択したあと、「Alt+Ctrl+Shift+Q」でブラウザが開き、選択範囲をGoogleで検索する。

 また、プロファイル設定で「experimental.repositionCursorWithMouse」を定義し、マウスでカーソル位置を移動させることも可能になった。ただし、現状有効なのは、入力中のシェル行のみで、viやemacsなどのエディタ内では利用できない。そのためには、シェル統合を有効にしておく必要がある。

"experimental.repositionCursorWithMouse":true, "experimental.showMarksOnScrollbar": true, "experimental.autoMarkPrompts": true,

 そのほか、テーマ機能などに拡張がある。Windows Terminal v1.19に関しては、「Windows Command Lineブログ(英語)」や「GitHubのリリースページ」に情報がある。

コマンドラインオプションの追加

 v1.19では、コマンドラインオプションも追加されている。1つは、v1.18で対応された環境変数の追従機能の制御である。v1.18では実行モデルが変更になったことで、各プロファイルは起動時の環境変数を引き継ぐようになった。v1.17までは親プロセスの環境変数をすべてのプロファイルが引き継ぐしかなかった。

 プログラムのインストール作業などの場合には、新しい環境変数が使われる方がありがたいが、シェルから子プロセスを実行するような場合、最新の環境変数ではなく、親と同じ環境変数を引き継ぎたい場合もある。親プロセスで環境変数を定義して、子プロセスで利用するといった場合だ。

 このようなとき、子プロセスとして起動されるwindows Terminalの環境変数を、親プロセスのものに強制するオプションとして「--inheritEnvironment」が、引き継がずに最新の環境変数を受け取るオプションとして「--reloadEnvironment」が用意された。デフォルトは、親プロセスの環境変数を受け取る「--inheritEnvironment」なので、何も指定しないと、親と同じ環境変数を受け継ぐ。

 なお、この動作は、settings.jsonのグローバル設定で「compatibility.reloadEnvironmentVariables」を設定することで、v1.17と同じ挙動に戻すことができる。

 もう1つの新規オプションは、「--appendCommandLine」フラグオプションで、これを指定すると、プロファイルの起動コマンドに、後続するコマンドを追加してプロファイルを起動する。これは、new-tab、split-paneサブコマンド内で利用する。たとえば、new-tabサブコマンドなどで、

wt.exe --appendCommandLine -p "PowerShell" -- -nop -noexit -command echo hello

と指定すると、PowerShellプロファイルに定義されているcommandlineに、後続の「-nop」(-noprofileの省略形)を追加して起動を行う。なお「--」は、後続のハイフン文字をWindows Terminalのオプションとして処理しないことを示す「POSITIONAL MARK」と呼ばれるWindows Terminalの記法である。ハイフンを含む引数を指定するときなどに利用する。

 なお、コマンドラインに関しては、本連載の以前の記事(「Windows Terminalのコマンドラインを極める」)を参考にしてほしい。

 今回の改良はそれほど派手なものではないが、筆者的には、rubyのirbが動作するようになった内部的な改良を評価したい。これまでWindows Terminalで挙動がおかしかったコマンドがあるようなら、v1.19を試してみる価値はある。

この記事に関連するニュース

トピックスRSS

ランキング

記事ミッション中・・・

10秒滞在

記事にリアクションする

記事ミッション中・・・

10秒滞在

記事にリアクションする

デイリー: 参加する
ウィークリー: 参加する
マンスリー: 参加する
10秒滞在

記事にリアクションする

次の記事を探す

エラーが発生しました

ページを再読み込みして
ください