現在プレビューが行われているWindows Terminal v1.24.2812.0(以下Windows Terminalをターミナルと表記する)では、コマンドパレットで、ローカライズされたコマンド名と英語のコマンド名の2つでコマンドを検索できるようになった(写真01)。

従来のターミナル v1.23では、ローカライズされたコマンド名でしかコマンドを検索できなかった。
ターミナルは、オープンソースであるが、完成品バイナリとしてWindows 11に同梱されるため、ローカライズは、マイクロソフト固有の方法(非公開)で行われる。このため、ユーザーは、英語、ローカライズ言語(たとえば日本語)との対応を情報として入手できなかった。

日本語と英語では、表記が大きく異なる場合がある。たとえば、「split pane」は、「ウィンドウの分割」になっている。splitから「分割」は想像できるが、英語では、分割された部分であるpaneを対象にしているのに対して、日本語では、paneに分割されるウィンドウが対象になっている。翻訳としては間違いないのだが、他方からもう一方を類推しにくいという問題がある。

このため、筆者は、プレビュー版のターミナルは、英語モードで利用し、コマンドパレットでは、英語のコマンドを使っていた。これには、メリットもあるのだが、設定ページの項目も英語のままなので、分かりにくいというデメリットもあった。また、ポータブル版では、最近まで言語指定ができなかった。

コマンドパレットが、日英対応になったため、もう英語版で利用する必要がなくなった。ただし、まだプレビュー版での対応であり、安定版ターミナルは、v1.23のままである。おそらく安定版がv1.24になるのは来年以降と思われる(もう年末である)。


このコマンドパレットでは、Linuxなどで使われているfzf(Fuzzy Finder)と同じアルゴリズムを使った曖昧検索が可能になっている。曖昧検索とは、たとえば、検索語「abc」は、「abc」とマッチするのは当然だが、「axxx bxxx cxxxx」ともマッチする。検索語を「単語」と考えるのではなく、マッチする文字の並びとしても検索ができる。このため、「スクロール(scroll)」を「srl」のような単語から見つけることも可能だ。

この曖昧検索は、日本語に対しても有効で、「スる」と入力すると「フォーカ『ス』を移動す『る』」、「テキ『ス』トをコピーす『る』」、「1ページ上に『ス』クロールす『る』」などが対象となる。日本語の場合、IMEを使うので、よく使う単語(たとえばウィンドウなど)は、予測入力で簡単に入力できるが、そうでない単語の入力、変換、確定の操作が面倒なことがある。このような場合例えば、「上ス」と入力すると「上へスクロール」、「1ページ上にスクロール」、「履歴の一番上までスクロール」が候補にあがり、短縮入力として利用できる。

曖昧検索は大量の結果を出力してしまう可能性があるが、fzfでは、各結果にスコアを付け、スコアで並び替えた結果を提示するようになっている。このスコア付けの部分までが検索アルゴリズムに含まれている。もし、アルゴリズムの挙動を調べたいなら、コマンドラインで直接fzfを使ってみるといいだろう(大量のログやファイルリストからの検索が便利になる)。fzfは、Linux(WSL)で使えるほか、Windowsでも利用が可能だ。Windows 11からは、Winget経由でインストールできる。


winget install fzf

ファイルやコマンド出力などをfzfの標準入力にパイプ文字を使って入れると、検索語入力モードになるので、適当な検索語を入れる。fzfは、結果選択のユーザーインターフェースを含んでおり、検索ののち、上下カーソルキーで結果の選択などが可能だ。

今回のタイトルネタは、ヴェルナー・カール・ハイゼンベルク(Werner Karl Heisenberg)の不確定性原理。量子力学的な世界では、物質粒子は位置と運動量を同時に正確に「知る」することができない。これを不確定性関係という。これは、粒子はすべて粒子性と波動性の2つの性質を持つことに起因する。
編集部おすすめ