Kiedy tworzę wiele sesji w tmux, bieżący katalog dla każdego nowego okna w kolejnych sesjach jest ustawiany jako katalog bieżący dla pierwszej.
Na przykład:
-> cd /home/one && tmux new-session -n one\; new-window -n two
# /home/one is the current directory for each window
-> cd /home/two && tmux new-session -n three\; new-window -n four #\; etc.
# "/home/two" is the current directory for the window "three"
# but for the window "four" and other created windows it is "/home/one"
Jak zmusić tmux do ustawienia bieżącego katalogu dla każdego nowego okna w kolejnych sesjach jako katalogu, w którym sesja została utworzona?
tmux 1.6
zsh 4.3
split-window -h "#{pane_current_path}"
nie zadziała ...split-window -h -c "#{pane_current_path}"
Zdaję sobie sprawę, że to pytanie jest dość stare, ale pojawiło się jako jedno z niewielu pytań na StackExchange, kiedy sam szukałem odpowiedzi, więc oto, jak rozwiązałem to dla Tmux 1.8.
new-window
Komenda zajmuje-c
flagę, która pozwoli na określenie aktualnego katalogu nowym oknie. Domyślnie jest to pusty ciąg, który będzie używał bieżącego katalogu roboczego paneli jako katalogu dla nowego okna. Podanie-
jako wartości dla-c
flagi ustawi katalog nowego okna na to, w którym sesja została otwarta.Oto fragment dokumentacji:
Jeśli chcesz zmienić domyślne zachowanie
<PREFIX> c
klawiszy, aby to odzwierciedlić, oto co zrobiłem w moim~/.tmux.conf
:źródło
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:
po prostu zamień wywołania na powłokę odpowiednio do twojego.
także, najwyraźniej nowsze wersje tmux mają to zaadresowane poleceniem
twierdzi się, że starsze wersje działają w ten sposób:
powołanie
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:
źródło