il y a pas mal de réponses ici: /unix/12032/create-new-window-with-current-directory-in-tmux
En résumé:
de la FAQ tmux, une manière obtuse (mais très générale et assez indépendante du shell):
- Comment puis-je ouvrir une nouvelle fenêtre dans le même répertoire que la fenêtre actuelle?
Une option consiste à exécuter simplement "TMUX = tmux" dans la fenêtre. Cependant, cela ne fonctionne que si aucune commande n'est en cours d'exécution, afin que vous puissiez entrer la commande.
Une solution de contournement consiste à informer tmux du chemin actuel via une variable d'environnement. Pour ce faire, utilisez la commande suivante:
[ -n "$TMUX" ] && tmux setenv TMUXPWD_$(tmux display -p "#I") $PWD
Ce qui définit TMUXPWD_i (où i est le numéro de la fenêtre courante) sur le chemin du répertoire courant. Cette commande peut être ajoutée à PS1, par exemple:
PS1='$([ -n "$TMUX" ] && tmux setenv TMUXPWD_$(tmux display -p "#I") $PWD)\h$ '
Lorsqu'une nouvelle fenêtre est créée, le shell doit être invité à changer de répertoire. Vous pouvez définir une nouvelle liaison (par exemple, si vous utilisez GNU bash):
bind-key C-c run-shell 'tmux neww "cd $(tmux display -p "\$TMUXPWD_#I"); exec bash"'
Cette solution fonctionnera même si une commande est en cours d'exécution dans le terminal, mais elle ne fonctionnera pas à partir d'une fenêtre qui vient d'être échangée avec une autre car TMUXPWD_i ne sera pas mis à jour après un échange. Cependant, une fois qu'une nouvelle invite s'affiche, TMUXPWD_i est mis à jour correctement.
remplacez simplement les appels au shell selon vos besoins.
aussi, les versions apparemment plus récentes de tmux ont ce problème avec une commande
tmux nouvelle fenêtre
les anciennes versions fonctionneraient ainsi:
appel
tmux neww
à partir de votre shell ouvrira tmux dans ce répertoire.
si vous souhaitez pouvoir ouvrir de nouvelles fenêtres ou volets à partir du répertoire de travail actuel dans tmux, vous devez plutôt:
tmux set-option default-path "$ PWD"