最近SSH接続して作業することが多くなり、これまではscreenコマンドを使っていました。 tmuxというものの方が活発的に開発されているらしく、ちょっと気になっていたので使ってみました。
OS Xにはscreenコマンドはバンドルされていますが、tmuxはありません。自分でビルドするかHomebrewを使ってインストールすると利用可能になります。
$ brew install tmux $ tmux -V tmux 2.3
screenコマンドは割と手に馴染んでいたものの、誤操作でセッションの復元に失敗したり、履歴のマウススクロールがうまく行かず、代替えを探していたらtmuxに出会ったというわけです。でも実はscreenでもマウスによる画面スクロールができるらしいことがわかりました(後述します)。
といっても、デフォルト設定のままのtmuxでは画面スクロールはできません。.tmux.confに次のように設定をすると可能になります。
$ vi ~/.tmux.conf #History Size set-option -g history-limit 5000 #Status Configure set-option -g status-right '[%m-%d(%a) %H:%M]' #Use 256color set -g default-terminal "screen-256color" #Mouse Scroll (OSのコピペ機能を使うにはoption(alt)を押しながら範囲指定。qで抜ける) set-option -g mouse on
ちなみにtmux 2.1からマウス関連の設定の書き方が変わったようです。ネット検索すると古いバージョンでしか使えない設定がありますので要注意です。
設定変更したところ大体自分の手に馴染むようになりましたが、マウスによるスクロールをサポートする設定を追加すると、OSのコピーアンドペーストの機能を使う場合にAltキーの押下が必要になるようです。ちょっとこれが面倒です。
そこでscreenで画面スクロールをする方法を調べました。
$ vi ~/.screenrc #History Size defscrollback 5000 #Status Configure hardstatus alwayslastline "[%02c] %-w%{=b bw}%n %t%{-}%+w" #Use 256color term screen-256color #Mouse Scroll termcapinfo xterm* ti@:te@
最終行のそれがそのための設定です。以上の設定でtmuxもscreenも大体同じように使えるようになりました。 位置は違いますが、時計とか表示させてみました。下記のスクリーンショットは画面スクロールしたので、screenコマンドの方はステータスバーみたいなものは見えませんけどね。
セッションの復元
tmuxコマンドとscreenコマンドにおけるセッションの復元は次のように操作することで可能です。
$ tmux a (tmuxの場合) $ screen -r (screenの場合)
せっかくインストールしたのでとりあえずしばらくはtmuxを使ってみようと思います。