MinTTY ist die neue Standardkonsole für Cygwin.
Was ist ein Shell-Befehl (etwas, das ich in .bashrc oder noch besser in .zshrc einfügen kann), um den Titel des MinTTY-Fensters zu ändern?
Ich möchte, dass der Titel des Fensters der Pfad zum aktuellen Verzeichnis ist und aktualisiert wird, wenn ich die Verzeichnisse in der Konsole wechsle.
$PS1
) enthält bereits eine Steuersequenz, die den Fenstertitel auf user @ machine: working_directory setzt.-T <title>
in den Windows-Shortcut-Eigenschaften verwenden. Siehe auch diemintty man page
.Antworten:
Was ist falsch
Der folgende Befehl hat bei mir nicht funktioniert:
Es stellt sich heraus, dass meine Standard-Cygwin-Installation die folgende Definition der Eingabeaufforderung in .bashrc enthält:
Beachten Sie, dass der erste Teil der Eingabeaufforderung (
\e]0;\w\a
) den Fenstertitel jedes Mal festlegt, wenn die Eingabeaufforderung angezeigt wird.Die Lösung
Fügen Sie diese Zeilen hinzu
.bashrc
, die 2 Funktionen definieren:Dann können Sie mit diesem Befehl einen benutzerdefinierten Titel festlegen:
oder Sie können mit diesem Befehl zu Cygwins Standard (dem aktuellen Pfad) zurückkehren:
Hoffe das hilft
quelle
source ~/.bashrc
Andernfalls führt Cygwin weiterhin die alte Version von bashrc aus, die sich beim Start von Cygwin auf der Festplatte befand. - Getestet aufCygwin version 2.8.1 (64 bit)
- eine 2017-VersionSie können dies mit der xterm-Steuersequenz wie folgt ändern:
Siehe http://code.google.com/p/mintty/issues/detail?id=241
quelle
Fügen Sie dies in .zshrc ein:
Die Reihenfolge der Sonderzeichen in der Funktion settitle bewirkt, dass MinTTY den Titel des Fensters ändert.
Wenn Sie in zsh eine Funktion mit dem speziellen Namen chpwd definieren, wird diese nach jedem chdir aufgerufen .
Funktioniert unter WinXP mit Cygwin 1.7 und MinTTY unter zsh.
quelle
settitle "$(pwd)@$HOST"
In bash kann die Variable PROMPT_COMMAND so eingestellt werden, dass sie eine Reihe von Befehlen enthält, die durch Semikolons getrennt sind. Sie können dies verwenden, um die gleiche Titeleinstellung vorzunehmen, wie in der anderen Antwort beschrieben, in der es um zsh geht.
quelle
quelle
Ich habe Leonels Antwort verwendet, aber ich habe festgestellt, dass der Titel dabei nur flimmert, was bedeutet, dass zumindest der Echo-Befehl wie vorgesehen funktioniert. Ich habe zsh interaktiv mit aktiviertem Debug-Modus ausgeführt
Das Ändern des Verzeichnisses ruft offensichtlich eine andere Funktion auf, die
title()
nachprecmd()
undchpwd()
effektiv überschrieben wird. Also habe ich das in meine .zshrc gesteckt und es hat funktioniert.Wenn Sie verwenden möchten
chpwd()
oderprecmd()
stattdessen deaktivieren Sie einfach die Titelfunktion:title(){}
.quelle
Ich wollte nur meine Lösung für dieses Problem mitteilen, da ich mintty verwende, um ein Skript auszuführen.
Meine Mintty-Verknüpfung lautet:
Das von mir geschriebene connect.sh-Skript, das in der obigen Verknüpfung aufgerufen wird, fordert mich auf, den Server anzugeben , zu dem ich eine Verbindung herstellen möchte, UND die im Skript definierte Settitle-Funktion auszuführen.
connect.sh
quelle
title
wenn Sie sie nicht verwenden?Versuchen Sie, dies in .bash_profile einzufügen
export PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}:${PWD/#$HOME/~}\007"'
Für mich geht das.
quelle