tmuxでウィンドウ移動(Like Vim Keybindings)
ターミナルマルチプレクサ Advent Calendar 2011 : ATND19日目の記事でございます。
bannyanさんがセッションの移動に関して書いてらしたtmux で複数のセッションを移動する - 写経日記ので、カジュアルにウィンドウの移動でも書こうかと思います。
単に移動
まずは僕のtmux画面でも晒しておきましょう。
Snow LeopardでiTerm2を使い、サーバ上でtmuxを使ってます。バージョンは1.5を使い、ソースからインストールして使ってます。
ウィンドウを5つ開き、そのうちの1つのウィンドウを開いている状態です。現在、開いているウィンドウでは、縦分割を行い、上のペインにtopを、下は作業用に開いています。
現在、ウィンドウを5つ開いているわけですが、開いているウィンドウとは別のウィンドウに移動するためには、以下のようにします。
なので、今5番目のウィンドウに居ますので、4番目に移りたい場合は、「Ctrl」を押しながら「b」を押し、そのあとにpを押します。これがtmuxのウィンドウの移動となります。
Vimライクにウィンドウ移動
僕の場合、prefixは「t」で慣れているので、「Ctrl+t」を使っているのですが、わざわざウィンドウ移動のために2回キーを打つのは正直面倒という気持ちもあり、何とかしたいという思いがありました(大袈裟ですが)。
なので、~/.tmux.confに以下のように追加してみましょう。
まず、「unbind-key」を使って、デフォルトで設定されているバインドを初期化します。その上で、「-n」でエスケープシーケンスを使わず、ウィンドウの移動のコマンド(previous-window, next-window)をCtrl+ h または lでできるようにします。
このhやlというのは、ご存じの方も多いかと思いますが、Vimのキーバインドと同じなので、Vim使いには覚えやすいかと思います。
こうすることで、一回のタイプで、しかもVimに慣れていれば、分かりやすいキーバインドで、ウィンドウの切り替えができるようになります。
個人的にtmuxは設定しやすいので、好きですが、それでもやはりある程度手を加えないと、タイプ量が増えたり、指が痛くなったりしますので、最低限は手を加えてやりやすい環境を整えておきましょう。
tmux.conf含め、dotfilesはgithubで管理してますので、もう少し興味ある方は是非見てみてください。あと、こうしたほうがもっと楽になるよというのがあれば、是非教えてください!
github.com