これを行う方法は、セッションから切り離すことです (^b d
デフォルトのキーバインドを使用) し、別のディレクトリに再接続するときに別のディレクトリを指定します。セッションにアタッチするときは、-c
を使用します 作業ディレクトリを指定するフラグ。以下に例を示します:
$ tmux list-sessions
tmuxwtfbbq: 3 windows (created Tue Apr 5 14:25:48 2016) [190x49]
$ tmux attach-session -t tmuxwtfbbq -c /home/chuck/new_default_directory
この設定は保持されます。作業ディレクトリをリセットした後は、セッションに再接続するたびに指定し続ける必要はありません。
記録のために、私は tmux バージョン 2.0 を使用しています (問題はないと思いますが、-c
の追加については何も見つかりませんでした)。 attach-session
へのオプション コマンドが変更ログに記録されているので、かなり長い間そこにあったと思います)。
Chucksmashの答えは良いものですが、必要に応じてセッションを使用せずに達成することもできます.コマンド attach-session
tmux コマンド プロンプトでも使用できます。ターゲット セッションは、ドットを使用して「現在の」セッションとして指定できます。
attach-session -t . -c /path/to/new/directory
セッションをデタッチせずに、また <prefix>
を使用する必要なく、tmux セッションの作業ディレクトリを変更する方法を次に示します。 キーストローク:
(オプション 1) tmux
のディレクトリに入る コマンド プロンプト:
tmux command-prompt "attach -c %1"
...コマンド プロンプトが開き、目的の作業ディレクトリを入力します ~/my/dir
ENTER
を押します
(オプション 2) ペイン内のコマンド ラインでディレクトリを指定します。
# Execute this in one of the shell panes of within your tmux session:
tmux command-prompt -I $PWD -P "New session dir:" "attach -c %1"
このアプローチでは、コマンドを起動したペインの現在のディレクトリが new-directory のプロンプトに事前入力されます。もちろん、$PWD
は他のものに置き換えることができます。 よろしければ。
シェル機能が必要ですか?
これをシェルの初期化に追加しました:
# Change the current directory for a tmux session, which determines
# the starting dir for new windows/panes:
function tmux-cwd {
tmux command-prompt -I $PWD -P "New session dir:" "attach -c %1"
}
これらすべてのオプションを使用すると、今後の新しいウィンドウは指定されたディレクトリで開始されます。
注: attach
、 attach-session
、および a
はすべて互いのエイリアスです。 tmux command-prompt
には他にも多くの機能があります。man ページを読む価値があります