職場のPCもプライベートのPCもmacなんですが、
ターミナル環境としてiTerm2とtmuxを使ってます。
一般的にそうなのかわかりませんが、
Cmd+t
でiTermにより新規タブを作成した時
タブ同士がなぜか同じウィンドウを指しているようで、
タブで複数の環境を立ち上げておくことができませんでした。
一方、tmuxにはウィンドウという概念があって
new-window
コマンドとかで複数の環境を立ち上げておくことができますよね。
(普段の使い方として、sshとかで別のPCに接続するわけじゃないんですが
ローカルPCの複数のディレクトリで作業したい時とかに使ってます)
ただ、元々デフォルトのターミナルでタブ移動をCmd+Shift+[
またはCmd+Shift+]
ショートカットで行っていたので
これでtmuxのウィンドウ間移動もできないかな...と思ったのです。
で、調べてみるとこちらの記事に書いてました。
https://codeiq.jp/magazine/2014/01/5143/
以下、その設定方法です。
環境
Mac OS 10.9(Mavericks)
iTerm2
tmux
設定
iTermの設定画面を開き、
Keys > GlobalShortcut Keys
の下にある+ボタンをクリックします。
続いて、表示される画面で
Keyboard Shorcut: 割り当てたいショートカットキー(ここでは
Cmd+Shift+[
)
Action: 「Send Hex Code」を選択
を設定し、一番下のテキストボックスにHex codeを入力します。
Hex codeとはtmuxのショートカットコマンドを16進数で表現したものです。
ここで、tmuxのプリフィックスキーがデフォルトのCtrl+b
のままの場合は
Hex codeも参考元の記事の通りでいいのですが、
.tmux.conf
などでプリフィックスキーを変更している場合は
このサイトを参考に、対応するHex codeを参照してください。
私の環境ではtmuxのプリフィックスキーをCtrl+t
に割り当てているため、Hex codeは0x14
でした。
あとは、通常ウィンドウ間の移動はCtrl+t n
およびCtrl+t p
で行っているため
対応するHex codeを表にまとめると、次のようになりました。
Keyboard Shortcut | Hex Code | 動作 | tmuxのKeyboard Shortcut | tmuxのコマンド |
---|---|---|---|---|
Cmd+Shift+[ | 0x14 0x70 | 前のウィンドウに移動 | Ctrl+t p | previous-window |
Cmd+Shift+] | 0x14 0x6e | 次のウィンドウに移動 | Ctrl+t n | next-window |
設定完了後の画面はこんな感じ。
設定はこれでおしまい。
※※2014/08/08 追記※※
ウィンドウの移動だけでなく、新規作成や閉じるのも通常のタブと同じようなショートカットキーで実現したいと思い、追加しました。
Cmd+t
で新規ウィンドウ、Cmd+w
でウィンドウを閉じるためのショートカットはこちらです。
Keyboard Shortcut | Hex Code | 動作 | tmuxのKeyboard Shortcut | tmuxのコマンド |
---|---|---|---|---|
Cmd+t | 0x14 0x63 | 新規ウィンドウ | Ctrl+t c | new-window |
Cmd+w | 0x14 0x6b | ウィンドウを閉じる | Ctrl+t k | kill-window |
(または) | 0x04 | デタッチ | Ctrl+d | detach |
※ウィンドウを閉じるためのtmuxのショートカットはデフォルトでは設定されてません。
次のように.tmux.conf
に記述する必要があります。
# kill K k unbind K bind K kill-window unbind k bind k kill-window # detach ^D d unbind ^D bind ^D detach
Cmd+w
をkill-window
とdetach
のどちらに割り当てるかは
好みで大丈夫だと思います。
(意味的にはkill-window
...?)
おわりに
この設定だけで、Cmd+Shift+[
, Cmd+Shift+]
によるウィンドウの移動が可能になりました。
iTermのタブ移動とショートカットキーがかぶっているため大丈夫かなーと思ったんですが、問題なさそうです。
リファレンス
基本的にここ https://codeiq.jp/magazine/2014/01/5143/
Ctrl-○とHex codeの対応 unix-manuals.com - このウェブサイトは販売用です! - unix manuals リソースおよび情報
読めたら読みたい Google Code Archive - Long-term storage for Google Code Project Hosting.