Ich bin kürzlich von der Standard-Terminal-App zu iTerm2 gewechselt und habe ein Problem mit der Benutzerfreundlichkeit.
Auf Terminal wird das Arbeitsverzeichnis, in dem Sie sich befinden, zusammen mit dem Prozess und der Pixelgröße in der Titelleiste angezeigt. Wenn Sie beispielsweise auf Fenster klicken, um zwischen verschiedenen Terminalsitzungen zu wechseln, sehen Sie: Arbeitsverzeichnis - Prozess - Pixelgröße.
Auf iTerm2 wird leider nur der Prozess in der Titelleiste angezeigt. Wenn ich also in mehreren iTerm2-Fenstern in verschiedenen Verzeichnissen arbeite, kann ich nicht leicht unterscheiden, welches das ist, wenn ich auf Fenster klicke, um eines auszuwählen. Ich weiß, dass ich einfach zwischen iTerm2-Fenstern wechseln kann, sobald ich eines ausgewählt habe, aber ich möchte sofort genau bestimmen, welches Fenster ich möchte. (Übrigens benutze ich Witch, und Command-tabbing hilft auch nicht, weil auch hier wieder nur der Prozess in der Liste auftaucht).
Irgendwelche Vorschläge? Ich habe alle Einstellungen durchgesehen und nichts gefunden. Das Erstellen von Profilen ist nicht genau das, wonach ich suche - ich möchte nur das aktuelle Arbeitsverzeichnis in den iTerm2-Fenstertiteln sehen.
Mit der \033]0;TEXT\007
Escape-Sequenz.
Anwendungsbeispiel in Bash:echo -ne "\033]0;$PWD\007"
Was Sie Ihrem hinzufügen könnten, $PROMPT_COMMAND
wenn Sie Bash verwenden, oder auf andere Weise an Sie anhängen, PS1
damit es häufig neu bewertet wird.
Beispiel:export PROMPT_COMMAND='echo -ne "\033]0;$PWD\007"'
Wenn Sie zsh verwenden (was der Standard in macOS 10.15+ ist), fügen Sie dies stattdessen in Ihre ~/.zshrc ein:
if [ $ITERM_SESSION_ID ]; then
precmd() {
echo -ne "\033]0;${PWD##*/}\007"
}
fi
\033
Sie können auch as \e
und \007
as buchstabieren \a
.
Eine möglicherweise einfachere Antwort ist die Verwendung der von iTerm 2 angebotenen String-Interpolationsfunktion . Bereitstellung:
\(currentTab.currentSession.path)
in den Einstellungen würde zu einem geänderten Fenstertitel führen. Die Option ist über zugänglichPreferences>>Profiles>>[Profile we need to modify]>>Window
\(current.Session.path)
\(currentSession.path)
Ich mag diese Antwort aus diesem Kern , um sie dem Tab -Titel hinzuzufügen
# put this in your .bash_profile
if [ $ITERM_SESSION_ID ]; then
export PROMPT_COMMAND='echo -ne "\033];${PWD##*/}\007"; ':"$PROMPT_COMMAND";
fi
Sie können den Tab-Titel in iTerm2 unter macOS relativ einfach auf das aktuelle Arbeitsverzeichnis setzen, indem Sie Folgendes in Ihr ~/.zshrc
Profil einfügen:
# Set iTerm Tab Title to Current Working Directory
DISABLE_AUTO_TITLE="true"
iterm_tab_title() {
echo -ne "\e]0;${PWD##*/}\a"
}
add-zsh-hook precmd iterm_tab_title
Es verwendet eine Precmd-Hook-Funktion , die vor jeder Eingabeaufforderung ausgeführt wird, und setzt den Registerkartentitel, indem es das aktuelle Arbeitsverzeichnis ausgibt.
Zu guter Letzt spielen einige Oh My Zsh-Themen mit dem Titel des Terminalfensters herum, sodass die Einstellung DISABLE_AUTO_TITLE="true"
dies behebt. †
Sie haben nicht genug Karma, um einen Kommentar abzugeben, aber wenn Sie möchten, dass es ~/dir
stattdessen angezeigt wird /users/username/dir
, können Sie es verwenden
if [ $ITERM_SESSION_ID ]; then
precmd() {
echo -ne "\033]0;$(dirs)\007"
}
fi
stattdessen.
Spencer
weiner_nil
Anentrop
echo -ne "\033]0;${PWD##*/}\007"
(mit Dank an github.com/barryclark/bashstrap für das Zeigen des Weges)Chris Page
~/.bashrc
wird von jeder interaktiven Shell ausgeführt, sodass sie die von diesem Skript gesetzten Variablen nicht erben müssen.zurückhaltend
felixfbecker
Write-Host "`e]0;$PWD`a" -NoNewLine
Kapoko
Chris Nielsen
zurückhaltend