So ändern Sie das Standardverzeichnis für neue Fenster im tmux

42

Ich bin kürzlich vom GNU-Bildschirm zu tmux gewechselt .
Ich finde es ziemlich ähnlich, aber mit größerer Unterstützung (ich wechselte aufgrund eines Problems mit der Fluchtzeit in Neovim - Auflösung war nur für tmux).

Leider kann ich in tmux keinen ähnlichen Befehl finden:

screen -X eval "chdir $(some_dir)"

Der obige Befehl änderte das Standardverzeichnis für neues Fenster / Bildschirm / Fenster aus dem GNU-Bildschirm heraus, so dass beim Drücken von Ctrl+ a(ähnlich wie bei tmux Ctrl+ b) - ein neues Fenster im $(some_dir)Verzeichnis geöffnet wurde .

Gibt es etwas Ähnliches in tmux?

ANTWORT:
Ich habe die @Lqueryvg-Antwort verwendet und sie mit dem @Vincent Nivoliers-Vorschlag aus einem Kommentar kombiniert. Dadurch erhielt ich eine neue Bindung für einen Befehl, attach -c "#{pane_current_path}"der mein aktuelles Verzeichnis als Standardverzeichnis festlegt.
Vielen Dank.

Lewiatan
quelle
Sie könnten die zweite Antwort auf diese Frage verwenden
Vincent Nivoliers
Danke, es ist hilfreich. new-window -c "#{pane_current_path}"funktioniert, aber ich muss den Pfad dauerhaft festlegen, dh: Ich arbeite in einem Projekt in / aaa / bbb, aber irgendwie ändere ich den Pfad in / ccc / ddd und beginne neu mit Cb und c, was ich möchte lande noch einmal in / aaa / bbb. Können Sie sich eine Lösung dafür vorstellen?
Lewiatan
Mir persönlich geht es gut mit dem Hinzufügen der letzten drei Zeilen in meinem .tmux.conf. Auf diese Weise muss ich nur einmal in den Ordner navigieren und von dort aus meine Fenster / Spalten erstellen, aber ich gebe zu, dass dies keine Lösung für Ihr Problem ist. Deshalb habe ich keine Antwort veröffentlicht!
Vincent Nivoliers

Antworten:

61
  1. Beginnen Sie tmuxwie folgt:

    (cd /aaa/bbb; tmux)
    

    Jetzt werden alle neuen Fenster (oder Fensterbereiche), die Sie erstellen /aaa/bbb, unabhängig vom aktuellen Verzeichnis des aktuellen Fensters im Verzeichnis gestartet .

  2. Wenn Sie das Standardverzeichnis ändern möchten, sobald es aktiv tmuxist, verwenden Sie attach-sessionmit -c.

    Zitat aus der tmuxManpage für attach-session:

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

    Zum Beispiel:

    • Ctrl+b :

    • attach -c /ddd/eee

    Neue Fenster (oder Bereiche) werden nun im Verzeichnis gestartet /ddd/eee, unabhängig vom Verzeichnis des aktuellen Bereichs.

Lqueryvg
quelle
7
Die zweite Option ist genau das, was ich wollte. Ich werde verwenden, attach -c "#{pane_current_path}"was das gleiche wäre, was ich auf dem Bildschirm hatte. Vielen Dank.
Lewiatan
Ja! attach -cist genau das, wonach ich gesucht habe. Vielen Dank
Byron Mansfield
3

Für diejenigen, die nach etwas mehr Referenz suchen, als die ausgewählte Antwort bietet, gibt es auf StackOverflow eine weitere gute Antwort auf diese Frage:

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

Welche bietet Möglichkeiten , wie Sie es ohne Verlassen der Sitzung zu tun, und für diejenigen , die in einer Multisession Mode (wie ich) verwenden tmux, gibt die obige Antwort ein bisschen besser Kontext , wie attach/ attach-sessionArbeiten.

In den beiden verfügbaren Antworten finden Sie verschiedene Verwendungsmöglichkeiten. Ich fand beide hilfreich / aufschlussreich.

nicklamuro
quelle