tmuxをなんとなく使ってたのできちんと使うようにしてみた

tmux、なんとなく入れてなんとなく使ってたけど、改めてそれなりに形にしてみたのでメモ。

tmuxとは

たーみなるまるちぷれくさー。ターミナル操作が便利になる系の、まぁ今更自分が説明する必要はないですね。せいぜいVagrantとVPSいじりながらローカルでもVim開くみたいなことしかやってないので宝の持ち腐れ感はハンパねーですが、とりあえず知っといた方がいいやってのとなんとなくカッコいいっていう理由だけで使ってる。

なお、インストール自体はだいぶ前に実行したのでやり方忘れた。たしかHomebrewで入れられたと思う。

.tmux.conf

ルートディレクトリ上に生成される設定ファイル。tmuxに関する設定は基本的にここに書く。

自分の設定ファイルを張ってみたけど、よく見られる設定の寄せ集めだとは思う。tmuxはなんかESCキーの反応が悪いらしく、その調整用の設定。ペイン分割したときに各ペインごとでマウススクロールができるようにする設定。文字コードの設定。色の設定。これは上手くやればもうちょっと見やすくなるんだろうなとは思ってるけど、面倒なので半端なとこで終えている感がある。カラーパレット見て色名探してみたいのめんどいよぉ。

あとキーバインド。デフォルトのプレフィックスがC-bなんだけど、使いづらいのでC-zに当て替えてる。他にやってるのは.tmux.confをすぐ読み込むための設定と、ペイン移動や分割のショートカット、あとはウィンドウやセッションのkill。

コピーモードについてはよくあるviライクなキーバインドが使えるってやつをそのまま使っている。コピーモードに入るときのデフォルトキーが[なのが気に食わんので、これもyに変更してある。でもよく考えたらvの方が相応しいなこれ。。。

powerline

残りはpowerlineに関しての設定。ステータスラインがカッコよくなります的なやつ。これも入れ方忘れたけど、公式のREADMEによればgit cloneするみたい。

これ、入れたはいいけど天気とか上手いことでなくてしばらく放置していた。今回改めて先のREADME読んでみたところ、GNU grepが要るみたいで、インストールしてgrepコマンドを置き換えたら上手くいった。やっぱりREADMEはちゃんと読むべき。自戒。他にもCPUとメモリ使用状況のグラフィカルな表示のためにはthewtex/tmux-mem-cpu-loadが必要だったりする。

設定は主に3ファイルを用いる。

まず.tmux.confにpowerlineを使うってことを宣言しなくては使えない。先の.tmux.confで言えば一番下の方の設定。上からステータスラインを表示する設定、更新インターバルの設定、UTF-8の使用設定、ウィンドウリストを左側に配置(これは好みによってcenterにする人もいるみたい)、ステータスラインの長さの設定。で、最後の2行でpowerline.shを読み込ませている。

実際にpowerlineに何を表示させるか、という設定は~/tmux-powerline/themes/default.shを変更して行う。

デフォルトで表示できるものについてはすでに入っているので、これをコメントアウトしたりして好きなものを表示できるよう変える。各.shの後ろについている数字は表示部分の文字色と背景色。~/tmux-powerline/color_palette.shを実行すると、設定できる色と色名の一覧が表示できるので、これを使って設定する。まぁ、おこのみで。あと各表示部分の境界をカッコいい感じにするための設定が入ってたりするが、このへんはググれば出てくるので割愛(適当)。なお、default.shを直接触りたくない場合は、コピーして名前変えて使えばOK。

さらに、表示内容の細かな設定に.tmux-powerlinercを使う。このファイルは元々置かれていないので、./tmux-powerline/generate_rc.shを実行して生成する。よくいじるのは天気の設定で表示する地域を入れたり、時間や日付の表記を好きに変えたりってところかと。これについてはコメントでどういじればいいのか書いてあるので、見ればわかると思う。

tmux-powerlineについては自作のshellを使って好きな内容を表示させたりもできるようだけど、現状そこまでの情熱は傾けていない。

tmuxinator

tmuxを立ち上げたあと、ペイン分割をいちいち手でやるのが手間なので、自動化しちゃいましょうというツール。単に分割するだけではなく、各ペインでコマンド実行させることもできるので、例えば最初からVim開いておいたりディレクトリ変えておいたりgit pullさせておいたりとか、いろいろできる。工夫次第。自分は今のところよく使っていたペイン分割を自動化させることしかしていない。以下のページが大変わかりやすかった。

tmuxのwindow, pane設定を一発で再現できるtmuxinatorが便利 | TACTOSH

以上、超適当かつ簡潔なまとめでした。まぁ、あまりにもこの分野は先駆者が多いので。。

参考