💻

Macの端末をいろいろ検討した結果iTerm2になった

2021/07/09に公開
4

Macで開発をするうえで、基本的には標準のterminal.appを使っていました。

特に不足を感じていなかったのですが、先日の記事で「True colorに対応していない」という弱点が発覚しました。
https://zenn.dev/kawarimidoll/articles/1679844a116395

これに伴い、ターミナル系アプリをいろいろ比較した結果を残しておこうと思います。
ターミナルのカタログとしてお使いください。

あと、自分がマイナスを感じて使用を止めてしまったものもあるのですが、あくまで個人的な感想ということでよろしくお願いします。

作業記録(Zenn Scrap)はこちら

Alacritty

https://github.com/alacritty/alacritty/

Rust製ターミナルです。爆速らしいです。
ただかなり思想が振り切っていて、タブ機能などはありません。
また、小さな不具合ですが、コマンドライン上で日本語をインライン入力できない問題がありました。

https://twitter.com/KawarimiDoll/status/1410048542576545794

https://twitter.com/KawarimiDoll/status/1410056508935573504
今回の「色を綺麗に出したい」という動機を考えると、ちょっと学習コストが高すぎると感じたので、今回は見送りました。
以前にtmuxを使おうとしていた時期もある(dotfilesには入っている)のですが、いまいち慣れなかったんですよね。
評判は良いようなのでもう少し深く触ってみたいとは思っています。

Tabby

https://github.com/Eugeny/tabby
以前はTerminusという名前だったのですが最近Tabbyに改名しました。

軽さは重視していないようです。
https://twitter.com/KawarimiDoll/status/1410052299444002821
設定ファイルがApplication Supportに記録されます。Linuxだと保存先が違うようなのですが…。
https://twitter.com/KawarimiDoll/status/1410060729550479363
あとclickable-linkというプラグインでリンクを強調してクリックできるようになるという触れ込みだったのですが、動作しませんでした。
https://twitter.com/KawarimiDoll/status/1410088800156487682
この機能は結構ほしいと思っていたのですが、使えなかったため検討から外しました。

Extraterm

https://github.com/sedwards2009/extraterm

こちらもなかなかおしゃれなターミナルです。
出力結果をウィンドウに入れたりできる点は他ではあまり見ない特徴だと思います。

https://twitter.com/KawarimiDoll/status/1410054095780532226

しかし、コマンドライン上での日本語入力で、文字コードの扱いに起因すると思われる不具合がありました。
https://twitter.com/KawarimiDoll/status/1410058260556574723
けっこう深刻な問題なので使用は断念しました。

Electerm

https://github.com/electerm/electerm

その名の通り、Electronで動くターミナルです。

以下の通り、1commitですがコントリビュートしてたりします。

日本語に対応していたり、きれいめなUIで好印象でした。
https://twitter.com/KawarimiDoll/status/1410054855830376449

しかし、デフォルトターミナルがzshなのになぜかbashで起動していました。
https://twitter.com/KawarimiDoll/status/1410091071279755264
設定しているaliasesも認識していなかったので、そもそも端末の代替ではないのかもしれません。
ということで早々に使用は諦めました。

Hyper

https://github.com/vercel/hyper

Vercel謹製のターミナルエミュレータです。
かっこいいスタイルがいろいろあるようです。

こちらにもコントリビュートしております。

https://twitter.com/KawarimiDoll/status/1410071224810569729

Vercelというイケイケ企業のプロダクトなのですが、しばらく更新がないんですよね…。
https://twitter.com/KawarimiDoll/status/1410105653826187268
なんか不安になったので、別のものを探そうと考えました。

Kitty

https://github.com/kovidgoyal/kitty
Python製のターミナルです。
こちらもAlacrittyと同じくGPUを使用していて高速とのことです。

https://twitter.com/KawarimiDoll/status/1410135753301004288

軽量ですし良さそうだと思ったのですが、タブ表示にちょっと不満があったので使用は保留としました。

iTerm2

https://github.com/gnachman/iTerm2
いろんな所でおすすめされているターミナルです。
自分もしばらく前に使っていたのですが、「別にiTerm2じゃないと駄目な機能を使ってないな」と思ってアンインストールしていました。

terminal.appの乗り換え候補として最初の候補には上がったのですが、

  • 「とりあえず」で入れている人が多い印象なのでなんか使いたくない
  • 設定がplistファイルなのが気に入らない
  • Cross-platformではない

という理由で敬遠していました。

https://twitter.com/KawarimiDoll/status/1410053950112366592

しかし、他のOSSのターミナルを試した後では、

  • 安定して稼働している
  • 設定がGUIからできる
  • 日本語の情報が比較的多い

という点を魅力に感じました。

https://twitter.com/KawarimiDoll/status/1410107809056759808

https://twitter.com/KawarimiDoll/status/1410107916594520067

しかもviuでの画像表示にも対応しています(これはKittyもそうですが)。
https://github.com/atanunq/viu

敬遠していた理由についても、

  • 「とりあえず」で入れている人が多い印象なのでなんか使いたくない
    • → いろいろ比較した結果、良いと感じた
  • 設定がplistファイルなのが気に入らない
    • → どうせ設定はGUIから行うので形式はそれほど問題にはならない
    • → 保存先ディレクトリを変更できるのでdotfilesで管理できる
  • Cross-platformではない
    • → それはterminal.appも同じじゃないか

ということに思い至り、それならひとまず使いやすいiTerm2で良いか…ということになりました。

その他

以下も候補としてはあったのですが、よく確認していません。

https://github.com/gnome-terminator/terminator
https://github.com/liamg/aminal

おわりに

iTerm2になったというのはなんか少し悔しい感じもするのですが、紆余曲折あっていろいろと比較したことで納得した結果にはなったと思います。
今回使用を見送った他のターミナルも、Linuxを使うときなどは候補として検討したいと思っています。
特にKittyとAlacrittyあたりですかね。
今後も定期的に開発環境の整備をしていきたいです。

Discussion

Yoichi NakayamaYoichi Nakayama

Extratermの日本語表示の問題、システムの言語設定を元に環境変数LANGを設定する処理が実装されてないためと思います。
手元では明示的にLANG=ja_JP.UTF-8したら回避できました。

kawarimidollkawarimidoll

なるほど、その処理の関係でターミナルごとに挙動が違ったり表示が違ったりしたんですね
情報ありがとうございます!