at posts/single.html

GNU Screen から tmux へと移行した

Macの環境構築を継続中。2004年から使ってきたGNU Screenをtmuxへと移行した。WindowだけでなくPaneによる画面分割ができるのが特徴。これまで画面分割はいらないと思っていたけど、大きなディスプレイに接続しているときには便利だ。

tmux

デフォルト厨(カスタマイズしない派)なので、設定は必要最小限にしている。

  • 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 へ移行していく。

関連する日記