Microsoftが開発中のターミナルソフトウェア「Windows Terminal」の現在の状況を解説する。正式リリースが近づいており、タブ内を複数ペインに分割したり、日本語IMEの利用が可能になったりしている。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
開発が続くMicrosoftのオープンソースソフトウェアである「Windows Terminal」だが、2019年12月には機能を確定させたバージョンが出る、というのが当初の予定(最終版は、2020年4月)だった(Windows Terminalの概要についてはWindows 10 The Latest「PowerShellとLinuxシェルをタブ切り替え可能になる「Windows Terminal」を試用する」参照のこと)。そのつもりで待っていたのだが、原稿執筆時点の2019年12月末時点、12月版のリリースは行われていない。
MicrosoftのBlogでは、クリスマス休暇おめでとう的な記事「Happy Holidays from the Windows Terminal Team!」がWindows Terminal開発チームからあり、クリスマス休暇に入ってしまった感じだ。
なお、GitHub上には、12月版(Terminal-1912)の進行具合を示すページがあり、これを見ると完成度(クローズしたIssueの数/このバージョンに割り当てられたIssueの総数)は56%(2020年1月5日現在)だが、更新は行われていて、開発作業は完全には止まってはいないようである。
そういうわけで、今回は、2019年12月11日に配布されたv0.7の3リリース目に当たるWindows Terminal v0.7.3451.0を基に現状をレポートする。v0.7では、タブ内を分割するペイン機能がついに搭載された。また、日本人的には、ついにIME入力対応が行われ日本語入力が可能になったという大きな変更もある。その他、付属のCascadiaフォントにも改良が行われた。また、ペイン機能の搭載などに対応してデフォルトのキー割り当てが変更になり、設定機能などにも変更があった。
大きな変更点としてペインの実装がある。ペインとは、タブウィンドウ内を縦横に分割してそれそれで別のセッションを起動する機能だ。
Linuxなどでは、もともとtmuxやGNU Screenなどの端末多重接続(Terminal Multiplexer)ソフトウェアがあり、端末や端末エミュレーターの画面をソフトウェア的に分割して利用することができた。ペインは、同様の機能を端末側で行うため、無関係のセッションをペイン内で実行できる。
ただし、v0.7の実装では、分割すると新しく起動されるセッションで常にデフォルトプロファイルが使われてしまう(標準設定ではWindows PowerShell)。
ペインの分割は、縦または横で行え、ペイン内をさらに分割することも可能である。分割する分、表示領域は小さくなってしまうが、タブを開くのとは違い、常に表示されているというメリットがある。例えば、タブ内を左右に分割して片方でマニュアルページなどを表示しなから使うといったことが可能だ。
UNIX/Linux系OSでは、GUI対応の端末エミュレーターウィンドウを使えば複数セッションを同時に表示できるようになってかなりの時間がたつ。だが、いまだに端末多重化ソフトウェアが使われているのは、複数の情報を同時に見ることができるという点と、全てキーボードから作業が可能というメリットが多くのユーザーに支持されているからである。複数のウィンドウをマウスで操作して左右に並べて使うよりも、大きな端末ウィンドウを2つに分割して使う方が便利なのである。
WSL/WSL 2を使えば、端末多重化ソフトウェアで端末画面を分割でき、それぞれの領域で、cmd.exeやpowershell.exeを起動するといった使い方も不可能ではないので、Windows Terminalのペインは、OSに依存しないというメリットはある。ただ、分割時にどのプロファイルを実行するかどうかの選択など、最終仕様ではないので、ここでは比較を避けたい。
ペイン内の分割などの操作は、キーで行う。こうした新機能の追加に伴い、このキー割り当てが追加になっている。このあたりをまとめたのが下表である。以前と変更があったキー割り当てを赤字で示した。
カテゴリー | キー割り当て | 機能 | command指定 | |
---|---|---|---|---|
操作 | [Ctrl]+[,] | 設定を開く | openSettings | |
[Alt]+[Ctrl]+[,] | デフォルト設定JSONを開く | − | ||
[Ctrl]+[Shift]+[Space] | メニューを開く | openNewTabDropdown | ||
[Alt]+[F4] | ウィンドウを閉じる | closeWindow | ||
[Alt]+[Enter]、[F11] | フルスクリーン表示オン/オフ | toggleFullscreen | ||
[Ctrl]+[Shift]+[C] | コピー | copy | ||
[Ctrl]+[Shift]+[V] | 貼り付け | paste | ||
[Ctrl]+[−] | フォントサイズ縮小 | decreaseFontSize | ||
[Ctrl]+[=] | フォントサイズ拡大 | increaseFontSize | ||
[Ctrl]+[0] | フォントサイズを戻す | resetFontSize | ||
[Ctrl]+[Shift]+[↓] | 下方向にスクロール(行) | scrollDown | ||
[Ctrl]+[Shift]+[PgDn] | 下方向にスクロール(ページ) | scrollDownPage | ||
[Ctrl]+[Shift]+[↑] | 上方向にスクロール(行) | scrollUp | ||
[Ctrl]+[Shift]+[PgUp] | 上方向にスクロール(ページ) | scrollUpPage | ||
タブ関連 | [Ctrl]+[Shift]+[D] | 同じプロファイルの新規タブ | duplicateTab | |
[Ctrl]+[Shift]+[T] | デフォルトプロファイルの新規タブ | newTab | ||
− | カレントタブを閉じる | closeTab | ||
[Ctrl]+[Shift]+[1] | プロファイル0でタブを新規作成 | { "action": "newTab" "index": 0 } | ||
[Ctrl]+[Shift]+[2] | プロファイル1でタブを新規作成 | { "action": "newTab" "index": 1 } | ||
[Ctrl]+[Shift]+[3] | プロファイル2でタブを新規作成 | { "action": "newTab" "index": 2 } | ||
[Ctrl]+[Shift]+[4] | プロファイル3でタブを新規作成 | { "action": "newTab" "index": 3 } | ||
[Ctrl]+[Shift]+[5] | プロファイル4でタブを新規作成 | { "action": "newTab" "index": 4 } | ||
[Ctrl]+[Shift]+[6] | プロファイル5でタブを新規作成 | { "action": "newTab" "index": 5 } | ||
[Ctrl]+[Shift]+[7] | プロファイル6でタブを新規作成 | { "action": "newTab" "index": 6 } | ||
[Ctrl]+[Shift]+[8] | プロファイル7でタブを新規作成 | { "action": "newTab" "index": 7 } | ||
[Ctrl]+[Shift]+[9] | プロファイル8でタブを新規作成 | { "action": "newTab" "index": 8 } | ||
[Ctrl]+[Tab] | 次のタブ | nextTab | ||
[Ctrl]+[Shift]+[Tab] | 前のタブ | prevTab | ||
[Ctrl]+[Alt]+[1] | 1番目のタブに切り替え | { "action": "switchToTab" "index": 0 } | ||
[Ctrl]+[Alt]+[2] | 2番目のタブに切り替え | { "action": "switchToTab" "index": 1 } | ||
[Ctrl]+[Alt]+[3] | 3番目のタブに切り替え | { "action": "switchToTab" "index": 2 } | ||
[Ctrl]+[Alt]+[4] | 4番目のタブに切り替え | { "action": "switchToTab" "index": 3 } | ||
[Ctrl]+[Alt]+[5] | 5番目のタブに切り替え | { "action": "switchToTab" "index": 4 } | ||
[Ctrl]+[Alt]+[6] | 6番目のタブに切り替え | { "action": "switchToTab" "index": 5 } | ||
[Ctrl]+[Alt]+[7] | 7番目のタブに切り替え | { "action": "switchToTab" "index": 6 } | ||
[Ctrl]+[Alt]+[8] | 8番目のタブに切り替え | { "action": "switchToTab" "index": 7 } | ||
[Ctrl]+[Alt]+[9] | 9番目のタブに切り替え | { "action": "switchToTab" "index": 8 } | ||
ペイン関連 | [Alt]+[Shift]+[−] | ペイン水平分割 | splitHorizontal | |
[Alt]+[Shift]+[+] | ペイン垂直分割 | splitVertical | ||
[Ctrl]+[Shift]+[W] | ペインを閉じる | closePane | ||
[Alt]+[↓] | 下のペインへ移動 | { "action": "moveFocus" "direction": "down" } | ||
[Alt]+[←] | 左のペインへ移動 | { "action": "moveFocus" "direction": "left" } | ||
[Alt]+[→] | 右のペインへ移動 | { "action": "moveFocus" "direction": "right" } | ||
[Alt]+[↑] | 上のペインへ移動 | { "action": "moveFocus" "direction": "up" } | ||
[Alt]+[Shift]+[↓] | ペインを下方向に拡大 | { "action": "resizePane" "direction": "down" } | ||
[Alt]+[Shift]+[←] | ペインを左方向に拡大 | { "action": "resizePane" "direction": "left" } | ||
[Alt]+[Shift]+[→] | ペインを右方向に拡大 | { "action": "resizePane" "direction": "right" } | ||
[Alt]+[Shift]+[↑] | ペインを上方向に拡大 | { "action": "resizePane" "direction": "up" } | ||
Windows Terminalのキー割り当て 赤字は、v0.7で変更があった部分。3つの欄が全て赤字になっているのが新規に割り当てられたキー。 |
Windows 10 The Latest「【Windows Terminal開発動向】Cascadia codeフォント搭載とJSONスキーマ対応の意味とメリット」で解説したようにキー割り当ては、settings.jsonファイルで行うが、キー割り当ての記述が強化され、一部のコマンドの記述方法が変わった。これまでは、単一キーには単一のコマンドを割り当てるしか記述方法がなかったが、コマンドとパラメーターを使ってキー割り当てを行う方法が追加されている。例えば、これまでタブを新規作成(「プロファイル0」を使う)するには、「newTabProfile0」というコマンドを使い、以下のように記述を行っていた。
{ "command": "newTabProfile0", "keys": [ "ctrl+shift+1" ] },
しかし、v0.7からは、パラメーターを使い、以下の記述が可能になった。
{ "command": { "action": "newTab", "index": 0 }, "keys": ["ctrl+shift+1"] },
この他、フルスクリーンモードが実装され、[F11]キーまたは[Alt]+[Enter]キーでオン/オフを切り替えることができるようになった。フォントサイズも[Ctrl]+[−]キーと[Ctrl]+[+]キーで縮小/拡大が可能で、[Ctrl]+[0]キーでフォントサイズをリセットしてデフォルト状態に戻せる。
v0.6から利用可能になったCascadiaフォントだが、ギリシャ文字やキリル文字などが追加され、さらにバリエーションが追加された(Cascadiaフォントの詳細は、Windows 10 The Latest「【Windows Terminal開発動向】Cascadia codeフォント搭載とJSONスキーマ対応の意味とメリット」参照のこと)。Cascadia Codeは合字付き、Cascadia Monoは合字なしのフォントファイルであり、それぞれPowerline記号が追加されたCascadia Code PL、Cascadia Mono PLという別ファイルとなっている。
フォント名 | Programming合字 | Powerline記号 | インストール元 |
---|---|---|---|
Cascadia Code | ○ | × | Microsoft Store |
Cascadia Code PL | ○ | ○ | GitHub |
Cascadia Mono | × | × | GitHub |
Cascadia Mono PL | × | ○ | GitHub |
Cascadiaフォントの入手先 Microsoft Store:Windows Terminalとともにインストールされる。 GitHub:https://github.com/microsoft/cascadia-code/releases |
ただし、Microsoft Storeで配布されているv0.7のWindows Terminalプレビュー版パッケージには、Cascadia Codeのみ付属する。他のフォントはGitHubから入手してインストールする必要がある。
Copyright© Digital Advantage Corp. All Rights Reserved.