こちらの記事はMac OS用になります。
Tmuxをご存知ですか?
私は最近知りまして、
udemyの
https://www.udemy.com/share/105ozG3@6NHOz3oRcFUtEjRbrWRrtovKMEc8_qNzxIGVp6j03vgt_FiBoqbMk4RKCdvShyVDPA==/
こちらの講座にて導入を始めました。
簡単に言ってしまうと、ターミナル画面を分割できるツールになります。
まさにこんなツールが欲しかったと思い、感動しておりました。
ただ自分の中で一つ疑問に感じることがありまして、
"iTerm2に同等の機能は存在しないのだろうか"
と。
そこで、ググってみるとやっぱりありましたのでご紹介するとともに、
簡単に比較したいと思います。
iTerm2とは?
こちらに関しては知ってる方も多いと思いますので、割愛します。
https://iterm2.com/
Tmuxとは?
ターミナルを分割してくれるツールで、
https://qiita.com/shin-ch13/items/9d207a70ccc8467f7bab
こちらに詳しい記事がありますのでぜひ参考に。
Tmuxを導入してみて
いいなと感じたこと
- 生産性が上がる
今までは一画面でしか作業していませんでしたが、実際に個人開発で導入してみました。
3画面で分割していて、
上記のように分けて使用していました。
vimを触っているときに階層を知りたい、とかコンテナ内でコマンドを実行したいと感じることがたびたびあり、それが解決できたことはまさに革命でした。
微妙だと感じたこと
- 各種ショートカットが煩雑
例えば、最もよく使用するであろうペインの左右分割のショートカット
Ctrl b + %
こちらなのですが、Ctrlとbという比較的遠いキーを押した後にshiftを押して5という少し遠いキーを押すのは少々手間だと感じました。
上記で紹介させていただいたudemyの講座ではconfigを編集してコマンドを打ちやすいように変更していますが、仮にサーバで使用するとなるとまたconfigを編集し直して...ということになり、少しナンセンスだと感じました。 - 自分が使用しているバージョンで不具合が発生
これに関しては完全に自分の技術不足の可能性がありますが、ダウンロードしたバージョンでdeleteキーを押すとspaceキーになってしまう不具合がありました。
解決方法が見つからず、エラーが解決されたときまた最新バージョンで使用するのはアリかなと感じています。
iTerm2の画面分割機能
いいなと感じたこと
- tmuxと同等の機能が実現されている
tmuxのように一つのウインドウで複数のターミナルを起動することができるので、tmuxでいいなと感じたことをまるっと享受できます。 - コマンドが超簡単
コマンドがとても簡潔で、
Cmd d
これで横方向の分割ができてしまいます。
微妙だなと感じたこと
今のところはないです。
tmuxとiTerm2の画面分割機能を比較して
- コマンドの手軽さ
ここが一番大きいかなと感じていて、
ある程度慣れていればコマンドを押すことは手間には感じなくなるかもしれませんが、
キーボードを入力する時間はできるだけ削減できた方が負担が少なくてすみますので、
iTerm2のコマンドの手軽さを考えるとこちらに関してはiTerm2に軍配が上がると考えています。 - セッション管理
tmuxの強みは完全にここであると感じています。
tmuxは、サーバを起動することで複数のターミナルを管理することができるようになり(セッション、完全には詳しくないので誤記がありましたらコメントください)、一度に画面分割できる数は限られているもののセッションを増やせば無制限に作業画面を増やせることになりますので、CLI上で無双したい系のエンジニアの方であればとてもそそる内容ではないかと感じています。
どちらを選ぶのか
結論、僕はiTerm2の画面分割機能を選びます。
理由は2つで、
- コマンドの手軽さ
こちらは上記の通り。 - セッション管理は自分には不要、代替案がある
僕の場合は、コマンドを叩いてセッションを切り替えるよりも、Macのデスクトップを切り替えてそれぞれにiTerm2のウインドウを持っていれば十分ではないかと感じています。
また、どうしても3画面以上のターミナルが同じウインドウでほしいとなった場合は、iTerm2にタブ機能がありますので、そちらも簡単なコマンドでタブの作成、移動ができるためそちらで必要十分だと感じました。
以上のようになっております。
個人的な意見ですが、CLIの便利さを学習によって享受し、そちらを最大化するのにリソースを先すぎるよりも、GUIをつかってCLIで得られる利便性をさらにブーストするのが一番生産性が高いと感じています。(VSCodeにvimのキーバインドを導入する etc.)
長文失礼いたしました。