Dazu müssen Sie sich von der Sitzung trennen (^b d
mit den Standard-Tastenkombinationen) und geben Sie dann ein anderes Verzeichnis an, wenn Sie es erneut anhängen. Verwenden Sie beim Anhängen an eine Sitzung den -c
Flag, um das Arbeitsverzeichnis anzugeben. Hier ist ein Beispiel:
$ 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
Diese Einstellung wird beibehalten - nachdem Sie das Arbeitsverzeichnis zurückgesetzt haben, müssen Sie es nicht jedes Mal angeben, wenn Sie sich wieder mit der Sitzung verbinden.
Fürs Protokoll, ich bin auf tmux Version 2.0 (obwohl ich denke, dass es nicht wichtig ist - ich konnte nichts über das Hinzufügen eines -c
finden Option zum attach-session
Befehl in den Änderungsprotokollen, also nehme ich an, dass er schon eine ganze Weile dort ist).
Die Antwort von Chucksmash ist gut, aber Sie können sie auch erreichen, ohne die Sitzung zu verwenden, wenn Sie möchten. Der Befehl attach-session
ist auch in der tmux-Eingabeaufforderung verfügbar; und die Zielsitzung kann mit einem Punkt als "aktuelle" Sitzung angegeben werden.
attach-session -t . -c /path/to/new/directory
So können Sie das Arbeitsverzeichnis der tmux-Sitzung ändern, ohne die Sitzung zu trennen und ohne den <prefix>
verwenden zu müssen Tastenanschläge:
(Möglichkeit 1) Geben Sie das Verzeichnis unter tmux
ein Eingabeaufforderung:
tmux command-prompt "attach -c %1"
... öffnet eine Eingabeaufforderung, dann geben Sie das gewünschte Arbeitsverzeichnis ~/my/dir
ein und drücken Sie ENTER
(Option 2) Geben Sie das Verzeichnis in der Befehlszeile im Fenster an:
# 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"
Bei diesem Ansatz wird die Eingabeaufforderung für new-directory vorab mit dem aktuellen Verzeichnis des Bereichs ausgefüllt, der den Befehl gestartet hat. Natürlich können Sie $PWD
durch etwas anderes ersetzen bitte.
Wollen Sie eine Shell-Funktion?
Ich habe dies zu meiner Shell-Initialisierung hinzugefügt:
# 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"
}
Mit all diesen Optionen werden alle zukünftigen neuen Fenster im angegebenen Verzeichnis gestartet.
Hinweis: attach
, attach-session
, und a
sind alle Aliase füreinander. Die tmux command-prompt
hat viele andere Kräfte, es lohnt sich, die Manpage zu lesen