kobar9568のブログ

技術的なメモやその他諸々

Windowsで最高のターミナルエミュレータを求めて三千里

はじめに

ターミナルエミュレータで試行錯誤してみたので、スクラムチームで行っているDX/PX向上デーのネタも兼ねて書き残しておく。
私は普段使いのマシンがWindowsで、開発機としてGUIの入ったUbuntuも愛用している。メインマシンからUbuntu(若しくはUbuntu Server)にSSHして開発することが多い。
一昔前はWindows向けのターミナルエミュレータの選択肢があまり無く、conhost.exeか(純粋なターミナルエミュレータではないが)Cmder、Tera Term・PuTTYあたりが候補だったと認識している。
最近では色々とモダンなものが出てきているが、Mac並に快適に使いたいと思い色々と試してみた。

以下、2020-09-29時点の内容。

Windows Terminal

  • UWPアプリ
  • TrueColor対応
  • フォントウエイト bold非対応
  • フォントのフォールバック先は指定不可
    • 但し、レジストリの編集等で変更できるかもしれない
      • (2020-10-10追記): フォントリンクはGDIの話であり、Windows TerminalはDirectWriteベースらしいので、少なくとも思っていた方法では解決しなかった。

備考

  • 対応OSはWindowsのみ
  • フォントの合字(リガチャ)を明示的に有効/無効にできない

Hyper Terminal

備考

  • そこそこの頻度で描画の不具合が起こり、定期的なFull reloadが必要
  • SSH先でウインドウを閉じた場合にクラッシュする不具合がある
  • フォントの合字(リガチャ)にはプラグインで対応

VS Code Integrated Terminal

  • Electron製
  • TrueColor対応
  • フォントウエイト bold対応
  • フォントのフォールバック先に好きなフォントを指定可能

備考

  • そもそもターミナルエミュレータではない
  • VSCode側のカラーテーマに引っ張られる
  • フォントの合字(リガチャ)を明示的に有効/無効にできる

スタイルをVS Codeに近づける

  • 私はVS CodeEditor: Line HeightEditor: Letter Spacingは特に弄らず、初期値のまま使っている。
    使うフォントによって適切な設定は変わってくると思うが、今の所初期値で見やすいと感じている。
    • Integrated Terminalや他2つのターミナルでも同じスタイルで使いたいと思っているが、デフォルトだと気持ち詰め気味になっている。
    • 取り敢えずElectron系ターミナルでは前者を1.12に、後者を1に設定したが、フォントやフォントサイズによっても変わってくるのでいい感じに調整したい。

総評

  • 現時点で、Windowsにおいて最も快適なターミナルエミュレータWindows Terminalだと思う
    • 開発も盛んに進んでいて、今後の進展にも期待
  • Hyperは恐らくMac OSをメインターゲットとしており、Windowsでは微妙な感じ

  • 完成度の高いクロスプラットフォームのターミナルエミュレータを使い、すべてのOSで全く同じ環境を使う…というのは現時点では難しそう

    • どちらにせよSSHするのであれば、現時点では見た目の差異を我慢してでも適したものを使う感じで行こうと思っている