MacがWindowsに比べて便利な点として 最初からUnixベースのターミナルコマンドが使える事があるかと思いますが、 ちょっと現時点でMacで使えるターミナルエミュレーターを調べてみました。
- ターミナル.app
- iTerm2
- Alacritty
- kitty
- Hyper
- Cathode
- cool-retro-term
- Black Screen
- Atom + platformio-ide-terminal
- TotalTerminal
- まとめ
ターミナル.app
最初から入っているターミナルアプリ。 /Applications/Utilitiesの下に入っています。
日本語表示は問題なく出来ます。
Windowsと比べてmacOSが使われる理由の一つがこのターミナルアプリが 最初から入っている事だと思います。 もちろん、そもそもMacがUnixベースなため そのターミナルから扱える環境がUnix環境でBashなどがすぐに使えることが大事な所です。
WindowsでもBash on Ubuntu on Windows がOfficialに使える様になりましたが、 これはUbuntuがWindowsシステムの中で別システムとして動いている様な状態なので、 このBash上からWindows側へ命令を送る事が出来る事が限られています。
特に凝った使い方をしない限りはこのアプリで十分です。
iTerm2
一番有名なmacOS用ターミナルアプリ。 自分のデフォルトターミナルアプリもこれ。
$ brew cask install iterm2
で入れられます。
日本語の表示も問題なく出来ます。
iTerm2にはターミナル.appに無い機能が色々ついていて、 ターミナル表示の履歴内を検索したりタブ機能の管理だったりが出来ます。
一方でGNU screenなどのターミナルマルチプレクサを使ってると特に必要がないものがほとんどです。
それでもiTerm2を使う理由はGNU screen上での文字化けが ターミナルよりも簡単に治せるからです。
他にもCommand/Controlキーの設定等、細かいところでiTerm2の方が使い勝手が良いので主戦力になっています。
Alacritty
Rustで書かれた レンダリングにGPUを使うターミナルアプリ。 GPUを使う事によって高速な動作を実現しています。
ある程度のGPUが載っている端末であれば最速のターミナルになります。
Linux/macOS環境で使え、Windows用には現在準備が進められている所です。
現状macOS+tmux+vimな環境で作業しようとすると 遅くなるバグがあるようです。
$ brew install --HEAD cema-sp/tap/alacritty
でインストールすることが出来ます。
インストールすると/Applicationsにアプリが出来るわけではなくて、
ターミナルからalacritty
と言うコマンドが使える様になるので
これを呼ぶとターミナルが立ち上がります。
もし、常時コレをデフォルトターミナルとして使いたいのであれば、 Automaterか何かを使って一発で立ち上げられる様なショートカットアプリを作っておくと便利です。
実際に使ってみると確かにiTerm2などに比べて動作が軽快で 速く描写されました。 特に大きなファイルで色々シンタックスハイライトが複雑なものをVimで開くと 大分速くて違いを感じました。
tmuxを使わずにmacOS+GNU screen+vimな環境であれば特にバグがあるわけでは無いらしく快適に使えました。
ただし残念ながら日本語は使えません。 既に日本語が書かれているファイルの中身や日本語名のディレクトリなどを表示しようとする時は 空白が表示されます。 さらに日本語を打ち込もうとするとフリーズしてしまうので注意が必要です。
もし日本語を一切使わない環境なら現状最も快適なターミナルエミュレーターかもしれません。
日本語などに関しては一応Issueに上がっていて 見られては居る模様。
これが上手く出来る様になるとiTerm2と入れ替えても良いかもしれません。
kitty
PythonとCで書かれたターミナルエミュレーター。 OpenGLを通してalacrittyの様にGUPを使ってレンダリングを行います。
Linux/macOSで使えますが、OpenGLを使っているだけなので OpenGLが使えるのであれば他の環境への移行もtrivialだろう、とREADMEでは言っています。
インストールは
$ brew install --HEAD cema-sp/tap/kitty
というCaskが用意されてますが、これだと
AttributeError: module 'enum' has no attribute 'IntFlag'
なエラーが出て失敗。
から直接dmgファイルをダウンロードしてインストールした所使えました。
ただ、そのまま立ち上げるとls
などの結果に色がつかず、
vim
などを立ち上げても色が付きません。
また、
$ screen
Cannot find terminfo entry for 'xterm-kitty'.
となってこれも素直には使えません。
このterminfo関連をなんとかすれば上の色もつくかもしれませんが
日本語は使えません。
これもGPUを使うアプリとして注目したいところですが、 GitHubでの注目度も含めてAlacrittyの方が上かな、と。
AlacrittyはRust、kittyはPython+C (Using OpenGL)と言う形で 開発の形が全く別なのでそれぞれ違った成長をするかもしれませんが。
このkittyがちょっと紛らわしいのが、 KiTTYと言うPuTTYのフォーク版があること。
kitty terminalとかで検索するとこちらの方が先に来ます。
さらに、kitty
で検索するとハローキティーが出てくるので、
kitty terminalでも
なんか空港とかのキティーちゃんキャンペーンの時のものっぽいのが出てきます。。。
Hyper
JavacScript/HTML/CSSによって作られた見た目を色々かっこよく出来るターミナルエミュレーター。
$ brew cask install hyper
でインストールできます。
このGifはhyperpowerと言うプラグインを入れたものですが、 こんな感じでプラグインを入れたり、また自分で作成したりして 見た目に色々と変化を付けられます。
Windows/Linux版もあります。
ただし現状日本語は使えません。
見た目が爽快になって楽しいのですが、その分ちょっと動作が重くなるかな、という所も。
Cathode
カテゴリ: 開発ツール, 仕事効率化
販売元: Secret Geometry - Secret Geometry, Inc.(サイズ: 3.6 MB
いわゆる昔のブラウン管っぽいターミナル画面を出してくれるMac用ターミナルエミューレーター。
フルスクリーンにすれば枠も含めてまるで昔のブラウン管が目の前にあるように見えます。
有料アプリですがDemo版で遊ぶことが出来ます。
$ brew cask install cathode
でDemo版をインストールすることが可能。
最初出た頃にはDemo版だと暫く経つとノイズが強くなって使えなくなりますよ、と言う記述があったと思うのですが、 今はDemo版との違いが見当たりません。 ただ使っていると確かにすぐにノイズ強く鳴ってくる感じはします。 使えなくなるというとこまでは行きませんが。
常時使うものではないですが、たまに立ち上げて使ってると楽しい。
日本語は使えません。
cool-retro-term
Cathodeと同じ様なコンセプトのターミナルエミュレーター。こちらはオープンソース。 Linux/macOSで動きます。
Macでは
$ brew cask install cool-retro-term
でインストール出来ます。
こちらのアプリは日本語の表示が問題なく出来ます。
Cathodeに比べるとテーマなどが少ないのと、 フルスクリーンに出来ないのが残念な所。 Mac専用ではないのでMacのフルスクリーン機能を別途追加するのは結構面倒なのかもしれませんが。
ただ、GitHubでアクティブに開発が進められているので まだまだ進化していきそう。
日本語にちゃんと対応しているので、 出来たら普通のターミナルのテーマも入れて使えるようにして 簡単に切れかえられる様になると普段使いとしても使えるものになりそうです。
Black Screen
GitHubでterminal emulatorで検索したら一番スターの多かったターミナルエミュレーター 1。
Electronで作られたターミナル。 現在はmacOSのみsupport。
$ brew cask install black-screen
で入れられます。
コマンドラインで入力時に補完のポップアップが出ます。
プログラムを書く時に使うIDEで良くあるような事をコマンドラインへの入力でやってくれる感じです。
これらのポップアップはマウスで選択することも可能です。
ポップアップの表示をしますが動作は遅くなるようなことはあまり感じません。結構快適です。
また、Gitのレポジトリ内に入っていくと 右下に現在のブランチ名などを表示してくれる機能が付いています。
日本語もVimなどで開いた時に少しずれがあるところもありましたが、 取り敢えずは使えます。
ただし、このコマンドラインはBashなどのシェルの上にもう一つ
独自の層でラップしてる感じで、
例えばBashのfunction
などの機能が使えません。
$ function a () { echo hoge; }
Black Screen: command "function" not found.
function
を消してa ()
だけにしてもa
というコマンドはありません、ということで関数が定義できません。
何故かfunction
機能を使っている.bashrcを読み込んでもエラーは出ませんが
そこで定義された関数は使えません。(スルーされてるかの如く。)
そこでbash
コマンドを打ってbashを立ち上げると通常のbashのコマンドラインモードに入る様ですが、
この状態だと補完が効かなくなります。
またGNU screenなどを立ち上げてしまうとそのコマンドが上部に表示されたまま 突入するような状態になります。
なので普通にターミナルエミュレーターとして使うための物にはなっていません。
ただ、補完がヌルヌルと快適に上がってくるので、 IDEでの補完に慣れた人で、ターミナルはちょっとgitコマンドを打ったりするだけ、 と言うような人には快適なターミナルになるかもしれません。
Atom + platformio-ide-terminal
最近人気のエディターAtom の中でターミナルエミューレーターをパッケージとしてインストールすることが出来ます。
取り敢えずAtom本体は
$ brew cask install atom
でインストール。
platformio-ide-terminalはSettingsから探してインストール。
ターミナルエミュレーターのパッケージはいろいろありますがこれが一番よさげ。
ちょっと前までは
というのが一番人気があったみたいですが現在このパッケージは動きません。
細かいところまではチェックしてませんが大体同じような感じの動作だと思います。
日本語も使えるし綺麗な表示ではありますが、 エディタの中のターミナルということで 動作も遅いですし、ここで常時作業するような感じではありません。
あと、⌘に関連するショートカットキーがAtomのショートカットキーに取られてたりして ターミナル上、またはその中でのVimなどのエディタ上でAlt/Commandキーに関するショートカットキーを普段使ってたりすると 使い勝手が悪いです。
あくまでAtomを中心に使ってターミナルとか他に立ち上げたくない、 と言う人向けな感じ。
TotalTerminal
これはアプリというか、macOSに入っているターミナルを強化することが出来るソフトウェアです。
TotalTerminal is a system-wide terminal accessible via a hot-key
ただし、El Capitan以降で使う場合にはそのままでは使えず、 SIPの機能を停止する必要があります。
$ brew cask install totalterminal
TotalTerminalで便利なのはウィンドウの切り替えやらサイズの調整が キーボードショートカットで出来る、ということが多いみたいですが、 それに関してはAppleScriptとかで他のアプリにも使える様なものが作れます。
他の機能は基本ターミナル.appなので、 今敢えてこれを使う必要はないかな、と。
まとめ
探してみると 他にも結構色々あって stonewell/pymterm とかはまだ最近もアップデートがあるPython製のターミナルエミュレーターです。
色々ありますが、どれを使ったら良いか迷ったら 取り敢えず余計なものを入れずにターミナル.appを使っておけば良いと思います。
iTerm2のところで書いた様に、ちょっと気になるところがあるならば iTerm2を使うと幸せになれます。
HyperやCahode/cool-retro-termなんかは 入れておいてたまに使うと楽しい。
Black Screenは通常のターミナルエミュレーターとはちょっと違いますが、 人によってはとても便利なアプリになると思います。
後はGPUを使うAlacritty/kittyがきちんと使いものになると ターミナル環境ががらりと変わって快適になる可能性があるな、というとこで これらのアプリはちゃんと見ておきたいところです。
現在14520。Hyperは14793でさらに多いですがemulatorの単語が入ってないので。terminal検索するとHyperの方が上に来ました。 ↩