tmux でペイン分割するときに、アクティブなペインのディレクトリを引き継ぐようにする

投稿日: 2025-05-10

デフォルトだと tmux サーバを立ち上げたときのカレントディレクトリを引き継いでしまうが、その挙動を変更する。

私は tmux が好きです。 というより、tmux 前提の開発をしているので、tmux なしでターミナルを触ることが考えられません。

プロジェクトごとにセッションを作って、その中で必要なだけペイン(ウィンドウ?)を分割してやりくりする、というのが自分のスタイルです。 ただ、このときの挙動は、tmux サーバを最初に立ち上げたときのディレクトリからスタートする、というものでした。 ほとんどのケースでは、開発中のリポジトリのコードを読み書きしているので、新しく分割したペインもそのディレクトリから始まってほしいものです。

このためには、以下のように設定すれば良いです。

+# '|' でペインを縦に、'-' でペインを横に分割する
-bind | split-window -h
-bind - split-window -v
+bind | split-window -h -c '#{pane_current_path}'
+bind - split-window -v -c '#{pane_current_path}'

これでガンガンためらわずにペイン分割していけます。 これを知るまでは、全ペイン同期するコマンドを実行してから、全ペインで一気に cd するっていう力技をやってました。 なぜオレはあんなムダな時間を…。

…正直に言うと、単に perplexity に質問しただけで、一瞬でこの返答が返ってきました。 tmux 使いはじめて5年くらい経過してからようやく知ったので、悔しさから勢いでこの記事を書きました。

ありがとう perplexity

以上です。