tmux が面白い

OpenBSD 4.6

借りてる VPS の環境も整ってきた上に、最近は Devio.us なんていうフリーの OpenBSD スペース貸し(というか、シェル貸し)なんかも見つけたりして数年ぶりにもりもり高まる OpenBSD 熱。というか、 OpenBSD はいつどんなときに「あ、やりたいな」って思ってもすごい良く書かれたドキュメントが揃っているので、「なんだかしらんが取り合えず Google に訊くか?」ということにならず man を見れば全てわかるのでとても気分が良いです。

さて、そんな OpenBSD 熱の高まりと共にそろそろ screen でも入れないと、と思ったら、 OpenBSD 4.6 からは tmux というものが標準で入っているらしいことを FAQ で知る。

tmux

tmux

で、立ち上げてみたんですが一発で気に入った!イイネ!

  • サーバ
  • セッション
  • ウィンドウ
  • ペイン

と上から下へ包括する概念があって、 tmux サーバは一回立ち上げておけばログインログオフしてもずっとセッションを複数持っておいてくれて、セッションの中にはウィンドウが何枚もあって、そのウィンドウがいくつものペインに表示上分割できる。という感じ。

もちろんいつ tmux をぬけても( C-b d )何本も立ち上げておいたセッションは生きているのでいつでも再度つなぎに行ける( tmux attach [-t SESSION_INDEX] )。同じセッションに複数の端末からつなぎにいってイエーイバッバッ。とか意味のないことして喜んだ金曜の朝。

あと、 emacs-er に優しい。もちろん vi-key にも .tmux.conf でいつでも変えられますが、 OpenBSD 世界ってシンプルエディタは mg だし、 emacs-er がデフォルトで住みやすい世界なんですよ。 tmux もそんな感じがした!。感じがしただけ。設定で一瞬で変えられるし、Linux 版ももちろんあるので vi-er にもおすすめです。

実際には、セッションを案件に割り振って、案件の中でエディタやらターミナルやらをウィンドウとペインに分割して使う感じになるかな。この辺の概念も emacs ぽいですね。ペインで分割したあと、いつでも break pane( C-b ! )でペインをウィンドウに昇格させてあげられるのとかいいな!

モード

あと、いつでも切り替えられるモードというのが3種類。

  • アウトプットモード
  • スクロールモード
  • コピーモード

アウトプットモードはヘルプ( C-b ? )で出てくるヘルプなんかを出力するモード。 C-n/C-p で操作したりする( emacs バインドの場合)。スクロールモードも同様なんだけど、そのペインで表示してた内容をどこまでも遡ることができる、 OpenBSD のコンソールでいうところのバッファ遡行( Shift-PgUp/PgDown )に近い。

コピーモードがバビりもんで、何だろーが今開いているペインが一旦フリーズして、自由にコピーできるようになる( C-Space > C-w とかで)。でコピーモードをぬけて(モードを抜けるのは一貫して q )、別なウィンドウや別なペインやお好きなところでペースト( C-b ] )できちゃう。バビった。俺、なんで今日まで tmux 使ってけーへんかったの?。 OpenBSD のコンソールで日本語さえ入れば、こりゃ X いらんわな。そりゃ。 OpenBSD-er が X あんまり使ってない理由がこんなところからも伺える。

しかし man

ま、正直何が一番良いって、 manpage が読みやすいわかり易いことですよ…。 GNU のツールの man ってなんであんなにマニュアルじゃなくて「物語」になってしまってるんだ。俺、 GNU ツールのマニュアルきらい。

唯一の問題は「会社の開発環境に入ってない気がする」ということだが、入ってなかったらユーザ領域で入れるか、ローカルクライアントに入れてそっから ssh してやるぞくらいの気に入りようである。テオ様ぱねえっす。やっぱ。

ちなみに

ちなみに OpenBSD 4.6 の tmux は上下に分割したあとに決められたレイアウトの中からえらぶ( C-b SPACE )感じに左右分割とかするんだけど、 4.7 あるいは 4.6 の current の tmux は直接左右に分割( C-b h )できるそうな。イイネ!