tutaj jest sporo odpowiedzi: /unix/12032/create-new-window-with-current-directory-in-tmux
w podsumowaniu:
z tmux FAQ, jeden tępy (ale bardzo ogólny i dość niezależny od powłoki) sposób:
- Jak mogę otworzyć nowe okno w tym samym katalogu, co bieżące okno?
Jedną z opcji jest po prostu uruchomienie „TMUX = tmux” w oknie. Działa to jednak tylko wtedy, gdy żadne polecenie nie jest uruchomione, aby można było wprowadzić polecenie.
Obejściem problemu jest poinformowanie tmux o bieżącej ścieżce poprzez zmienną środowiskową. Aby to zrobić, użyj następującego polecenia:
[ -n "$TMUX" ] && tmux setenv TMUXPWD_$(tmux display -p "#I") $PWD
Który ustawia TMUXPWD_i (gdzie i jest numerem bieżącego okna) na ścieżkę bieżącego katalogu. To polecenie można dodać do PS1, na przykład:
PS1='$([ -n "$TMUX" ] && tmux setenv TMUXPWD_$(tmux display -p "#I") $PWD)\h$ '
Po utworzeniu nowego okna należy poprosić powłokę o zmianę katalogu. Możesz zdefiniować nowe powiązanie (na przykład, jeśli używasz GNU bash):
bind-key C-c run-shell 'tmux neww "cd $(tmux display -p "\$TMUXPWD_#I"); exec bash"'
To rozwiązanie będzie działać, nawet jeśli polecenie jest aktualnie uruchomione w terminalu, ale nie będzie działać z okna, które właśnie zostało zamienione na inne, ponieważ program TMUXPWD_i nie zostanie zaktualizowany po zamianie. Jednak po wyświetleniu nowego monitu TMUXPWD_i jest poprawnie aktualizowany.
po prostu zamień wywołania na powłokę odpowiednio do twojego.
także, najwyraźniej nowsze wersje tmux mają to zaadresowane poleceniem
tmux nowe okno
twierdzi się, że starsze wersje działają w ten sposób:
powołanie
tmux neww
z twojej powłoki otworzy tmux w tym reż.
jeśli chcesz mieć możliwość otwierania nowych okien lub paneli z bieżącego katalogu roboczego w tmux, powinieneś zamiast tego:
tmux set-option domyślna ścieżka „$ PWD”