tmuxのPane/Window移動を少し便利にする
| | Linux
以下のブログで紹介されている、tmuxのお勧め設定の中の「Alt+矢印でpane移動して、端まで行ったら隣のwindowへ飛ぶ」がとても良いと思ったのですが、自分の環境(Ubuntu Linux 24.04)では動かなかったので別の方法で実現しています。このブログに「みなさんもぜひ自分のおすすめ設定を教えてください。」とあるので、私の方法を書きます。
以下エントリに書いたように、最近GreenCloudという格安VPSを借りたことをきっかけにLinux上に開発環境を整備しなおしているのですが、そのなかでtmuxの設定も上記アイデアをもとに少し更新しました。
私が実現したかったのは以下の動作です。
ALT - 左右矢印キーでPaneを移動する
Paneの左端までいった時、右端までいった時には次のWindowに移動する(ループする)
OpenCodeに以下のようなスクリプトを書いてもらって、 ~/.conf/tmux/smart_pane_move.shとして保存し、chmod +xで実行権限をつけます。
あとは、これを.tmux.conf等の設定ファイルでキーバインドするだけです。
`# Alt+左右矢印でpane移動(端まで行ったら隣のwindowへ循環)
bind -n M-Left run-shell "~/.config/tmux/smart_pane_move.sh left"
bind -n M-Right run-shell "~/.config/tmux/smart_pane_move.sh right"`
この他には、あまり凝ったtmuxの設定はしていません。あえて言うならGit管理のTUIであるLazyGitをいつでも呼び出せるようにpopup設定している部分でしょうか。
`## prefix - C-g でpopupでlazygitがオープン
bind C-g popup -E -d "#{pane_current_path}" -w 90% -h 90% "lazygit"
bind C-s popup -E -w 90% -h 90% "nvim ~/scratchpad.txt"`
上記のように書いておくことで、Prefix (私の場合はCtrl-z) -> C-g と押すことで、Window内部にLazyGitがポップアップで現れ、操作を終えたらすぐ元のWindowに戻れますので、お勧めです。
参考までに、以下に.tmux.conf全体を記載します。多くの部分は https://github.com/hendrikmi/dotfiles/blob/main/tmux/tmux.conf で公開されているものを参考にしています。