/ / Fenster dürfen sich in tmux nicht umbenennen - zsh, tmux

Fenster dürfen sich in tmux - zsh, tmux nicht umbenennen

Zsh

Ich habe tmux auf einem OS X-System mit zsh von oh-my-zsh installiert.

Ich benutze normalerweise eine ganze Reihe von tmux-Fenstern füreine ganze Reihe von SSH - Sitzungen, und ich möchte diese Fenster nach den Hosts benennen, mit denen ich arbeite, damit ich viel einfacher herausfinden kann, welches Fenster was enthält.

Ich habe versucht, Konfigurationszeilen wie set-window-option -g automatic-rename off und set-option -g allow-rename off zu meiner ~ / .tmux.conf, wenn ich jedoch eine neue tmux-sitzung starte, benenne das fenster um und cd in ein anderes Verzeichnis tmux benennt das Fenster glücklich wieder um, damit es mit dem aktuellen Arbeitsverzeichnis übereinstimmt.

Wie kann ich Fenster benennen, ohne dass sie sich automatisch ändern?

Antworten:

7 für Antwort № 1

Ich hatte aber mit ähnlichem Problem byobu-screen und nach einigen Nachforschungen stellte sich heraus, dass es ist oh-my-zsh Feature.

Dies wurde am diskutiert oh-my-zsh Probleme Seite

Kurz gesagt, ich musste mich auskommentieren DISABLE_AUTO_TITLE="true" Linie in meinem ~/.zshrc Datei.

Basierend auf der Version von oh-my-zshmüssen Sie möglicherweise hinzufügen export DISABLE_AUTO_TITLE="true".


1 für Antwort № 2

Mir ist bewusst, dass dies keine direkte Antwort auf Ihre Frage ist, sondern Ihnen möglicherweise dabei hilft, das gewünschte Verhalten zu erzielen - und es ist zu lang für einen Kommentar

IMHO sollten Sie die Ursache eher kurieren und nicht versuchenUm die Symptome zu lindern ... meine ich Folgendes: Irgendwo in Ihrer Shell-Konfiguration (wahrscheinlich in einem Ihrer aktivierten oh-my-zsh-Plugins) wird der Fenstertitel jedes Mal gesetzt, wenn Sie das aktuelle Verzeichnis ändern. Höchstwahrscheinlich in der precmd() oder chpwd() Funktion. Überprüfen Sie also zuerst die Ausgabe von

$ which precmd
$ which chpwd

und versuchen Sie, die Quelle in Ihren zsh rc-Dateien zu finden.

Ein Workaround kann sein, diese Funktionen zu überschreiben (mit tmux Automatisch umbenennen Option ausgeschaltet und erlauben-umbenennen auf):

$ chpwd() { }
$ precmd() {
if [[ "$TERM" = "screen" ]] && [[ -n "$TMUX" ]]; then
print -Pn "33k%m33\"
fi
}

Bemerkungen:

  • Ich habe den check benutzt, wenn du in einer tmux session bist diese Antwort
  • Der Fenstertitel wird jedes Mal durch Drucken einer Escape-Sequenz geändert, bevor die Eingabeaufforderung neu gezeichnet wird
  • print -P verwendet die gleichen Erweiterungen wie in der Eingabeaufforderung (siehe ERWEITERUNG DER PROMPT-SEQUENZEN im man zshmisc), so %m Erweitert auf den Hostnamen bis zum ersten Punkt.

Stellen Sie sicher, dass Sie diesen Code in Ihre einfügen ~/.zshrc Datei nach oh-my-zsh wird geladen.

Ein letzter Punkt, der mir einfällt: Der Hostname kann nur von dem Host festgelegt werden, bei dem Sie sich anmelden. Stellen Sie also sicher, dass die Konfiguration aller dieser Maschinen stimmt


Verwandte Fragen
Bemerkungen
Einen Kommentar hinzufügen