2009-07-09
時代はGNU screenからtmuxへ
GNU screenはもう古いので皆さんtmuxへ移行しましょう、という話。Gentooならemerge tmux。
スクリーンショット
手元のtmuxを撮ってみた。縦分割モード。ウィンドウマネージャはawesome。左のircクライアントはweechat。
tmuxへ移行する理由(メリット)
- 標準設定のままでもそれなりに使えるステータスバー
- 各ショートカットがコマンドベース(コマンドで操作ができる)
- 標準で縦分割機能搭載
- GNU screenがたまに固まる問題(が発生するのは私だけ?)が発生しないかも
- ビュー専用のスクロールモード
- 柔軟なペイン制御
- コピー&ペースト用のバッファを複数保持できる
- terminfo的にscreen互換
- 活発に開発中
tmuxへ移行する上での注意点(デメリット)
- GNU screenにはないペインの概念がややこしい(複数同時表示できるのはペインのみ、ウィンドウは1つのtmux上で同時に表示できない)
縦分割時にペインを狭める/広げることが現状できない*1- マルチバイト文字がたまに表示上消える(Ctrl+Lで復活)
- バッファのペースト時にマルチバイト文字が化けることがある
コピーモード中に検索が現状できない*2- GNU screenにあるシリアル接続機能はない
- まだ発展途上
GNU screenとtmuxのキーマップの違い
GNU screen風にキーカスタマイズも出来るけど、折角だからtmuxのキーマップに慣れましょう。いくつかピックアップ。
| 操作 | screen | tmux |
|---|---|---|
| ウィンドウを作成 | C-a c または C-a C-c | C-b c |
| ウィンドウ名を変更 | C-a A | C-b , |
| ウィンドウ一覧表示/移動 | C-b " | C-b w |
| 次のウィンドウへ移動 | C-a n または C-a C-n | C-b n |
| 前のウィンドウへ移動 | C-a p または C-a C-p | C-b p |
| 最後に操作したウィンドウへ移動 | C-a C-a | C-b l |
| ウィンドウを強制終了 | C-a k | C-b & |
| ペイン分割 | C-a S | C-b " |
| ペイン分割解除 | C-a Q | C-b ! |
| ペインを強制終了 | C-a k | C-b x |
| ペイン間移動 | C-a Tab | C-b o または C-b Up または C-b Down |
| ペインを狭める/広げる | C-a - または C-a + | C-b C-Up または C-b M-Up または C-b C-Down または C-b M-Down |
| ペイン配置パターンの変更 | なし | C-b Space または C-b {1,2,9} |
| 中断 | C-a d または C-a C-d | C-b d |
| 再開 | screen -x | tmux attach |
| ウィンドウ配置の変更 | なし | C-b Space |
| コピーモードでのコピー始点選択 | Space または Enter | C-Space (viモードならSpace) |
| コピーモードでのコピー終点選択 | Space または Enter | M-w (viモードならEnter) |
| 現時刻表示 | C-a t または C-a C-t | C-b t |
追記:GNU screen風キーカスタマイズも用意しました。
その他
今から使うならロケール問題が解消されたtmux-0.9以降がオススメ。ただ、tmux-0.9でも設定ファイルにutf8の記述が必要。私の今の設定(~/.tmux.conf)はこんな感じ。詳しくはtmux(1)を参照。
set-window-option -g utf8 on # 日本語環境なら今のところ必須。 set-window-option -g mode-keys vi # コピーモードのキーマップ。標準はemacs set-window-option -g automatic-rename off # ウィンドウ名が自動的に更新されないように
Vimで色が正しくでない場合は、t_Coが指定されていないか確認。
" t_Coを指定しているとtmuxでは色が正しくでないのでコメントに "set t_Co=88 "set t_Co=256
トラックバック - http://d.hatena.ne.jp/tmatsuu/20090709/1247150771
- (rubikitch loves (Emacs Ruby CUI)) - GNU Screenは古いの?
- それ、Gentooだとどうなる? - tmuxをGNU screen風キーバインドに変...
- src’s note - 気になる技術メモ
- IT戦記 - tmux 入れてみた
- hogehoge - tscreen
- hijouguchiの日記 - 雑記
- horizontal split
- watanaaの日記 - 時代はGNU screenからtmuxへ
- 日記のタイトル - tmux導入
- yuitowest的な - tmuxを使ってみた
- yuitowest的な - tmuxを使ってみた
- toguniの日記 - tmux
- 消しゴムの角は最初に使いましょう - screenのかわりにらしいtmuxを...
- 人生 - tmux導入
- bsiyoの日記 - diary
- tmuxをMacに入れてみた
- とある技術者の徒然なる日記 - tmux
- 組み込みの人。 - screenコマンドはリモートログインの親友
- mikenekoDXの日記 - tmux > screen
リンク元
- 56 http://reader.livedoor.com/reader/
- 45 http://b.hatena.ne.jp/
- 44 http://b.hatena.ne.jp/hotentry
- 40 http://d.hatena.ne.jp/
- 36 http://twitter.com/
- 26 http://www.tumblr.com/dashboard
- 19 http://www.google.com/reader/view/
- 17 http://b.hatena.ne.jp/entrylist
- 17 http://b.hatena.ne.jp/entrylist/it
- 16 http://b.hatena.ne.jp/hotentry/it




