Jak zmienić domyślny katalog nowego okna z poziomu tmux

42

Niedawno przeniosłem się z ekranu GNU na tmux .
Uważam, że jest dość podobny, ale z większym wsparciem ( zmieniłem z powodu problemu z czasem ucieczki w neovim - rozdzielczość była tylko dla tmux).

Niestety w tmux nie mogę znaleźć polecenia podobnego do tego:

screen -X eval "chdir $(some_dir)"

Powyższe polecenie zmieniło domyślny katalog dla nowego okna / ekranu / panelu z poziomu ekranu GNU, więc kiedy nacisnąłem Ctrl+ a(podobnie jak tmux Ctrl+ b) - otworzyło się nowe okno w $(some_dir)katalogu.

Czy w Tmux jest coś podobnego?

ODPOWIEDŹ:
Użyłem odpowiedzi @Lqueryvg i połączyłem ją z sugestią @Vincent Nivoliers z komentarza, co dało mi nowe powiązanie dla polecenia, attach -c "#{pane_current_path}"które ustawia mój bieżący katalog jako domyślny.
Dzięki.

lewiatan
źródło
Przydałaby się
Dzięki, to jest pomocne. new-window -c "#{pane_current_path}"działa, ale potrzebuję ustawić ścieżkę na stałe, tj .: pracuję w projekcie w / aaa / bbb, ale w jakiś sposób zmieniam ścieżkę na / ccc / ddd i zaczynam nowe z Cb i c Chcę wyląduj jeszcze raz w / aaa / bbb. Czy możesz znaleźć rozwiązanie tego problemu?
lewiatan
Jestem osobiście w porządku z dodaniem ostatnich trzech wierszy w moim .tmux.conf. W ten sposób muszę tylko raz przejść do folderu, a następnie utworzyć stamtąd windows / split, ale przyznaję, że to nie jest rozwiązanie twojego problemu, dlatego nie opublikowałem odpowiedzi!
Vincent Nivoliers

Odpowiedzi:

61
  1. Rozpocznij tmuxw następujący sposób:

    (cd /aaa/bbb; tmux)
    

    Teraz wszystkie nowe okna (lub panele), które utworzysz, zaczną się w katalogu /aaa/bbb, niezależnie od bieżącego katalogu bieżącego panelu.

  2. Jeśli chcesz zmienić domyślny katalog, gdy tmuxjest już uruchomiony, użyj attach-sessionz -c.

    Cytowanie ze strony podręcznika tmuxdla attach-session:

    -c will set the session working directory (used for new windows)
    to working-directory.
    

    Na przykład:

    • Ctrl+b :

    • attach -c /ddd/eee

    Nowe okna (lub panele) będą się teraz uruchamiać w katalogu /ddd/eee, niezależnie od katalogu bieżącego panelu.

Lqueryvg
źródło
7
Druga opcja jest dokładnie tym, czego chciałem. Mam zamiar użyć attach -c "#{pane_current_path}"tego samego, co miałem na ekranie. Dzięki.
lewiatan
Tak! attach -cjest dokładnie tym, czego szukałem. Dziękuję
Byron Mansfield,
3

Dla tych, którzy mogą szukać nieco więcej referencji niż wybrana odpowiedź, na StackOverflow była inna dobra odpowiedź na to pytanie:

https://stackoverflow.com/questions/27307815/how-to-change-the-starting-directory-of-a-tmux-session

Który zapewnia sposoby, jak możesz to zrobić bez wychodzenia z sesji, a dla tych, którzy używają tmux w trybie wielosesyjnym (jak ja), powyższa odpowiedź daje nieco lepszy kontekst, w jaki sposób attach/ attach-sessiondziała.

Zobacz obie dostępne odpowiedzi na różne sposoby ich wykorzystania. Uważam, że oba są pomocne / wnikliwe.

nicklamuro
źródło