GNU Screen から tmux へと移行した
Macの環境構築を継続中。2004年から使ってきたGNU Screenをtmuxへと移行した。WindowだけでなくPaneによる画面分割ができるのが特徴。これまで画面分割はいらないと思っていたけど、大きなディスプレイに接続しているときには便利だ。
デフォルト厨(カスタマイズしない派)なので、設定は必要最小限にしている。
- Mac OS X でクリップボードを使うための設定
- キーバインドは GNU Screen 互換にしない(tmux の設定を覚える)
- とはいえ、prefixはCtrl+tに設定
- キーバインドはvi互換に
- Ctrl t + t で前のウインドウに戻る(指が完全に覚えてしまっている)
- Ctrl t + r で設定ファイルを再読み込み
- ウインドウとタブは0スタートではなく1スタートに設定(そのほうが自然でしょ)
- ステータスバーの色はグレースケール(ウインドウに集中できるように控えめに)
- ステータスバーの左はホスト名とセッション、ウインドウ、ペイン番号
- ステータスバーの右は現在時刻(秒単位で表示するので1秒毎に書き換え)
設定ファイル (.tmux.conf) は GitHub で公開した。
tmux 使い方のポイント
Manual Pages: tmux(1)でコマンドを見る。シェルから tmux [コマンド]
を打つと、 zsh の補完でコマンド一覧と説明が表示されるので便利。コマンドの使い方がわかったら、 .tmux.conf
に追記する。
現在のキーバインドは Ctrl t + ? で表示される。必要最低限の覚えたものをまとめておく。
基本知識
- セッション … tmuxの接続単位(1セッションは複数のウインドウを持つ)
- ウインドウ … タブ的なもの
- ペイン … 1ウインドウ内での画面分割
とりあえずはセッションとウインドウだけで使っても便利。
セッション接続、切断
セッションは目的別に作る(開発用、サーバ操作用など)。
- シェルから
tmux
コマンドでセッション起動。 - Ctrl t + d でセッションをデタッチ(一時切断)。
tmux ls
でセッション一覧を表示- デタッチ中のセッションに接続するには a (attach) と -t [セッション番号] を使う。
$ tmux ls
0: 2 windows (created Sun Jan 13 07:18:49 2013) [158x45]
1: 1 windows (created Sun Jan 13 07:18:57 2013) [158x45]
$ tmux a -t 1
とはいえ必要なければ、1つのセッションを使えば十分。そのときはこれだけ覚える。
- 初回は tmux で起動
- 切断は Ctrl t + d
- 再接続は tmux a
ウインドウ操作
Ctrl tのあとに以下のコマンド。迷ったら ? でヘルプ表示。
キーバインド|動作 ----|----- c (create)|新しいウインドウを作る n (next)|次のウインドウへ移動 p (prev)|前のウインドウへ移動 1-0|番号に対応するウインドウへ移動 w (windows)|ウインドウ一覧を表示 ,|ウインドウに名前をつける
ペイン操作
ウインドウの分割。慣れるまでは無理に覚えなくてもいい。
キーバインド|動作 ----|----- %|ウインドウを縦分割して新しいペインを作成 "|ウインドウを横分割して新しいペインを作成 o|次のペインに移動 カーソルキー|カーソルキーの方向のペインに移動 q + 番号|ペイン番号を表示 → 番号のペインに移動 !|対象ペインから新しいウインドウを作る(大きい画面)
まとめ
慣れればtmuxは便利そう。使いながらキーバインドを覚える。
さくらVPS上ではmosh + byobuを使っているけど、こっちも徐々に tmux へ移行していく。