Es ist möglich, ein new-window
mit dem Arbeitsverzeichnis zu öffnen , in dem ich mich gerade befinde . Ich verwende zsh , wenn es darauf ankommt.
quelle
Es ist möglich, ein new-window
mit dem Arbeitsverzeichnis zu öffnen , in dem ich mich gerade befinde . Ich verwende zsh , wenn es darauf ankommt.
Ab tmux 1.9 die default-path
wurde Option entfernt, so dass Sie die verwenden müssen -c
Option mit new-window
, und split-window
(zB durch die rebinding c
, "
und %
Bindungen enthalten
-c '#{pane_current_path}'
). Weitere Informationen finden Sie in den anderen Antworten auf diese Frage.
Eine relevante Funktion landete Anfang Februar 2012 im tmux SVN-Trunk. In tmux- Builds, die diesen Code enthalten, wird durch das Aufrufen von tmux-Tastenzuordnungennew-window
ein neues Fenster mit demselben aktuellen Arbeitsverzeichnis wie die aktiven Prozesse des aktuellen Bereichs erstellt (solange die default-path
Sitzung aktiv ist) Option ist leer (Standardeinstellung). Gleiches gilt für den Bereich, der vom split-window
Befehl erstellt wird, wenn er über eine Bindung aufgerufen wird.
Dies verwendet speziellen plattformspezifischen Code, sodass derzeit nur bestimmte Betriebssysteme unterstützt werden: Darwin (OS X), FreeBSD, Linux, OpenBSD und Solaris.
Dies sollte in der nächsten Version von tmux (1.7?) Verfügbar sein .
Mit tmux 1.4 benutze ich normalerweise nur
tmux neww
in einer Shell, die bereits das gewünschte aktuelle Arbeitsverzeichnis hat.
Wenn ich jedoch damit rechne, viele Fenster mit demselben aktuellen Arbeitsverzeichnis erstellen zu müssen (oder sie mit der üblichen <Präfix> c
-Schlüsselbindung starten zu können ), setze ich die default-path
Sitzungsoption über
tmux set-option default-path "$PWD"
in einer Shell, die bereits das gewünschte aktuelle Arbeitsverzeichnis hat (obwohl Sie dies natürlich von jedem Verzeichnis aus tun und stattdessen nur den Wert angeben könnten).
Wenn default-path
ein nicht leerer Wert festgelegt ist, wird sein Wert verwendet, anstatt das aktuelle Arbeitsverzeichnis von Befehlszeilenaufrufen von zu "erben" tmux neww
.
Die tmux- FAQ enthält einen Eintrag mit dem Titel "Wie kann ich ein neues Fenster im selben Verzeichnis wie das aktuelle Fenster öffnen?", Der einen anderen Ansatz beschreibt. es ist allerdings ein bisschen verworren.
<prefix>c
, um das Arbeitsverzeichnis der zugrunde liegenden Shell-Instanz (falls vorhanden) zu lesen und dasdefault-path
vor der Ausführung festzulegennew-window
. Oder ist das zu viel verlangt von tmux :)/proc/PID/cwd
unter Linux) möglich ist). Es gibt eine mögliche Teillösung in einem Eintrag der tmux- FAQ (die Shell zeichnet ihre cwd auf, wenn sie eine Eingabeaufforderung druckt, und bindet dann einen Schlüssel, der eine neue Shell im aufgezeichneten Verzeichnis startet).default-path
Sitzungsoption (sofern festgelegt). Die tmux-FAQ enthält einen Eintrag, der eine Möglichkeit beschreibt, einen Schlüssel zu binden, der ein neues Fenster startet, wobei der Befehl der Shell im aktuellen Fenster ausgeführt wird („Wie kann ich ein neues Fenster im selben Verzeichnis wie das aktuelle Fenster öffnen?“). , aber die Methode ist ziemlich kompliziert. Das gleiche könnte wahrscheinlich fürsplit-window
undnew-session
(anstelle vonneww
) gemacht werden.Die aktuelle (1.9a) Tmux-Manpage enthält einen optionalen
-c start-directory
Parameter für einige Befehle, einschließlichnew-window
undsplit-window
. Es enthält auch die Formatvariablepane_current_path
, die sich auf die beziehtCurrent path if available
.Durch die Kombination dieser können wir ein neues Fenster mit dem aktuellen Arbeitsverzeichnis öffnen.
new-window -c "#{pane_current_path}"
Die Anführungszeichen werden benötigt, wenn der aktuelle Pfad Leerzeichen enthält.
Wenn Sie das aktuelle Fenster vertikal teilen möchten, verwenden Sie
split-window -c "#{pane_current_path}"
oder für eine horizontale Teilung
split-window -h -c "#{pane_current_path}"
Fügen Sie Folgendes zu Ihrem Arbeitsverzeichnis hinzu, damit die Tastenkombinationen standardmäßig neue Teilfenster und Fenster mit dem aktuellen Arbeitsverzeichnis öffnen
.tmux.conf
. Das"
mit umgebenden Anführungszeichen soll Tmux mitteilen, dass es keine Zeichenfolge beginnen soll, sondern den "Schlüssel binden soll .quelle
prefix
-:
, und geben Sie dannsource ~/.tmux.conf
tmux source-file .tmux.conf
.Ja, benutze
new-window -c "#{pane_current_path}"
. Sie können Folgendes zu Ihrer hinzufügen~/.tmux.conf
, um sie dauerhaft zu machen (unter Annahme der Standard-Tastenkombinationen):Die
default-path
Pfadeinstellung wurde entfernt vom vorgelagerten Code und TMux Autor in dieser Nachricht unter Verwendung von entweder commit empfohlen-c "#{pane_current_path}"
oder-c "$PWD
in dennew-window
undsplit-window
Befehlen.Ich antwortete auch in dieser doppelten Frage .
quelle
Mit neueren Versionen von tmux (v1.8, aber vielleicht auch in v1.7):
quelle
tmux split-window -v -c "$PWD"
$PWD
scheint in tmux 1.9a nicht zu funktionieren. Ich musstepane_current_path
wie oben vorgeschlagen verwenden.Die anderen Antworten funktionieren bei mir nicht, wenn ich versuche, sie (speziell
tmux split-window -c
) als Bindungen zu verwenden . Aber ich habe mir eine eigene Lösung ausgedacht, die ich seit mehr als einem Jahr verwende und die sowohl für neue Fenster als auch für Teilungen funktioniert:~/.bashrc
:~/.tmux.conf
:Funktioniert zumindest mit $ (tmux -V) 1.8. In den auskommentierten Zeilen finden Sie eine Version für ältere tmuxes, die nicht über den Befehl show-environment verfügen.
quelle
tmux hat das in Version 1.8 getan, aber in Version 1.9 wurde diese Funktion zugunsten der Verwendung von
-c
flag entfernt.Dies kann gelöst, aber erneut gebunden werden,
new-window
aber wenn Sie etwas anderes ausführen möchten, wird es zu wortreich: Anstattneww man tmux
zu tippenneww -c "#{pane_current_path}" man tmux
, müssen Sie das eingeben , was Sie höchstwahrscheinlich nicht tun möchten.Es gibt einen Mod von tmux (ich bin der Autor), der tmux eine geeignete Skriptsprache hinzufügt, um die Verwendung von Aliasen, das Binden mehrerer Befehle im Modus, von Variablen, Schleifen usw. zu ermöglichen : Neue Fenster und Bereiche werden im aktuellen Verzeichnis geöffnet.
Es kann aus folgenden Quellen erstellt werden: http://ershov.github.io/tmux/
quelle