Wie erhält man sowohl das aktuelle Arbeitsverzeichnis als auch den aktuellen Prozess in der Statuszeile für tmux?

Wie erhält man sowohl das aktuelle Arbeitsverzeichnis als auch den aktuellen Prozess in der Statuszeile für tmux?

Ich hätte gerne zwei Statuszeilen, wobei die erste Statuszeile anzeigt, in welchem ​​Verzeichnis sich das Fenster befindet, und die zweite, welcher Prozess im Fenster ausgeführt wird. Ist das möglich? Ich verwende Bash, bin aber offen dafür, auf eine andere Shell umzusteigen, wenn diese Konfiguration einfacher ist.

Wenn dies mit tmux nicht möglich oder sehr schwer zu konfigurieren ist, gibt es ein anderes Tool, mit dem ich diese Informationen erhalten kann? (Grundsätzlich möchte ich mehrere Registerkarten/Fenster im Terminal öffnen, mit den Verzeichnis- und Prozessinformationen.)

Antwort1

Eine wirklich gute Frage. Ich kann es zum „Laufen“ bringen, aber meiner Meinung nach nicht gut genug, um „brauchbar“ zu sein. Ich stimme zu, dass es ein schönes Format wäre, wenn es gut genug funktionieren würde. Ich werde die Informationen, die ich gefunden habe, hier bereitstellen, in der Hoffnung, dass vielleicht Sie (oder jemand anderes, der vorbeikommt) den Rest des Puzzles vervollständigen können.

Ab tmux 2.9 im Jahr 2019 ist es einfach, eine zweite Statuszeile mit hinzuzufügen setw -g status 2. Das Format für die erste Zeile wäre (ein sehrBasicAusführung):

setw -g status-format[0] '#{W:#{pane_current_path} }' # or ...
setw -g status-format[0] '#{W:#(pwd) }'

Die zweite Zeile wäre:

setw -g status-format[1] '#{W:#{pane_current_command} }' # or possibly
setw -g status-format[1] '#{W:#W } # if there's no other function changing the window title'

Das Problem ist, dass diese überhaupt nicht aneinander ausgerichtet werden und ich habe noch keine Möglichkeit gefunden, dies über tmux-Konfigurationsanweisungen zu tun. Es gibt möglicherweise eine Möglichkeit, sowohl die oberen als auch die unteren Ergebnisse zumindest auf eine bestimmte Breite aufzufüllen/zu zwingen, um auf diese Weise eine Ausrichtung zu erzielen, aber so weit bin ich noch nicht gekommen.

Beachten Sie auch, dass tmux standardmäßig nur alle 15 Sekunden aktualisiert wird. Sie können dieses Intervall mit etwas wie aktualisieren setw -g status-interval 1.

Beachten Sie auch, dass alle Befehle interaktiv in der Shell verwendet werden können, indem Sie den tmuxBefehl einfach voranstellen.

verwandte Informationen