Hatena::ブログ(Diary)

Dマイナー志向 このページをアンテナに追加 RSSフィード

2009-07-09

時代はGNU screenからtmuxへ

GNU screenはもう古いので皆さんtmuxへ移行しましょう、という話。Gentooならemerge tmux。

スクリーンショット

手元のtmuxを撮ってみた。縦分割モード。ウィンドウマネージャはawesome。左のircクライアントはweechat

f:id:tmatsuu:20090710013958p:image:w450

本家にもいくつかスクリーンショットがある

tmuxへ移行する理由(メリット)

  • 標準設定のままでもそれなりに使えるステータスバー
  • 各ショートカットがコマンドベース(コマンドで操作ができる)
  • 標準で縦分割機能搭載
  • GNU screenがたまに固まる問題(が発生するのは私だけ?)が発生しないかも
  • ビュー専用のスクロールモード
  • 柔軟なペイン制御
  • コピー&ペースト用のバッファを複数保持できる
  • terminfo的にscreen互換
  • メモリ消費量が少ない(GNU screenの約1/5)
  • 一部機能でマウスが使用できる(mode-mouse, mouse-select-pane)
  • 活発に開発中

tmuxへ移行する上での注意点(デメリット)

  • GNU screenにはないペインの概念がややこしい(複数同時表示できるのはペインのみ、ウィンドウは1つのtmux上で同時に表示できない)
  • 縦分割時にペインを狭める/広げることが現状できない*1
  • マルチバイト文字がたまに表示上消える(Ctrl+Lで復活)
  • バッファのペースト時にマルチバイト文字が化けることがある
  • コピーモード中に検索が現状できない*2
  • GNU screenにあるシリアル接続機能はない
  • Windowsからtelnet/ssh経由でtmuxを操作する場合、画面が崩れる場合がある
  • まだ発展途上

GNU screenとtmuxのキーマップの違い

GNU screen風にキーカスタマイズも出来るけど、折角だからtmuxのキーマップに慣れましょう。いくつかピックアップ。

操作screentmux
ウィンドウを作成C-a c または C-a C-cC-b c
ウィンドウ名を変更C-a AC-b ,
ウィンドウ一覧表示/移動C-b "C-b w
次のウィンドウへ移動C-a n または C-a C-nC-b n
前のウィンドウへ移動C-a p または C-a C-pC-b p
最後に操作したウィンドウへ移動C-a C-aC-b l
ウィンドウを強制終了C-a kC-b &
ペイン分割C-a SC-b "
ペイン分割解除C-a QC-b !
ペインを強制終了C-a kC-b x
ペイン間移動C-a TabC-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-dC-b d
再開screen -xtmux attach
ウィンドウ配置の変更なしC-b Space
コピーモードでのコピー始点選択Space または EnterC-Space (viモードならSpace)
コピーモードでのコピー終点選択Space または EnterM-w (viモードならEnter)
現時刻表示C-a t または C-a C-tC-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

*1:1.0で実装済

*2:1.0で実装済

tazotazo 2009/11/15 13:02 こちらを参考にtmux導入してみました。
まだ手になじんでないですが…。
関係ないですが、スクリーンショットのフォントがすごく気になってます。
フォント名を教えていただけないでしょうか?

tmatsuutmatsuu 2009/11/21 11:11 当時の環境を覚えてないんですが、英語フォントはTerminus、日本語フォントはおそらくefont-unicodeだと思います。

otasukenetotasukenet 2013/02/10 10:58 これもお勧め。
http://matsu.teraren.com/blog/2013/02/10/moteru-tmux-powerline/

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/tmatsuu/20090709/1247150771