Antworten:
Sie können Folgendes eingeben zsh, um den Fenstertitel von iTerm2 festzulegen:
echo -ne "\e]1;this is the title\a"
Wenn Sie dies automatisieren möchten, um z. B. die aktuelle Uhrzeit oder das aktuelle Arbeitsverzeichnis einzufügen, bearbeiten Sie Ihre zshKonfigurationsdateien, um den Titel in der precmd()Funktion auf z $PWD.
echo -ne "\e]1;$PWD\a"
Über die precmdFunktion können Sie im man zshmiscAbschnitt nachlesen SPECIAL FUNCTIONS.

Profiles > Terminal > Terminal Emulation > Terminal may set tab/window title.
iTerm2(3.2.9)
Was funktioniert bei mir:
echo -e "\033];this is the title\007"
Wenn Sie Mac OSX und iTerm verwenden, ist iTerm2 ::
Wenn Sie zsh verwenden, müssen Sie möglicherweise Ihre Einstellungen bearbeiten. Ihre Einstellungen befinden sich normalerweise in der Datei ~/.zshrc. Sie möchten Ihre Einstellungen hinzufügen oder bearbeiten, um sicherzustellen, dass diese Zeile vorhanden ist:
DISABLE_AUTO_TITLE="true"
Eine der Vorteile von iTerm ist die Möglichkeit, Fenstertitel und Tabulatortitel separat festzulegen:

# $1 = type; 0 - both, 1 - tab, 2 - title
# rest = text
setTerminalText () {
# echo works in bash & zsh
local mode=$1 ; shift
echo -ne "\033]$mode;$@\007"
}
stt_both () { setTerminalText 0 $@; }
stt_tab () { setTerminalText 1 $@; }
stt_title () { setTerminalText 2 $@; }
Auf diese Weise können Sie sofort sehen, mit welchem Host Sie in welchem Fenster verbunden sind, und der Fenstertitel für jede Registerkarte zeigt Benutzer und CWD an.
.bashrc, oder?
DISABLE_AUTO_TITLE="true"
A precmdmacht den Trick. Einige oh-my-zsh-Themen spielen jedoch mit dem Fenstertitel herum. Legen Sie PR_TITLEBAReine leere Zeichenfolge fest, um das Problem zu beheben.
set-window-title() {
# /Users/clessg/projects/dotfiles -> ~/p/dotfiles
window_title="\e]0;${${PWD/#"$HOME"/~}/projects/p}\a"
echo -ne "$window_title"
}
PR_TITLEBAR=''
set-window-title
add-zsh-hook precmd set-window-title
Ich würde auch empfehlen, mit den Registerkarteneinstellungen von iTerm2 in den Einstellungen -> Darstellung herumzuspielen.
Hinzufügen export PROMPT_COMMAND='echo -ne "\033]0;$PWD\007"'in ~/.bash_profilefür mich gearbeitet.
Keine der Antworten schien für mich zu funktionieren, wahrscheinlich für die iterm2-Version (3.3.3).
Das habe ich herausgefunden: https://gist.github.com/phette23/5270658#gistcomment-3020766
Grundsätzlich können Sie tun, was in allen anderen Antworten gesagt wird, müssen aber auch einstellen
Preferences > Profiles > General > Title -> Name (Job)
Das hat bei mir funktioniert.
GeneralRegisterkarte, es ist unter der ProfilesRegisterkarte
> Profiles. Mein Fehler. Aktualisiert.
Die akzeptierte Antwort hat lange für mich funktioniert, ist aber jetzt in der neuesten Version von iTerm2 defekt. Eine Problemumgehung bestand darin, die Python-API zu aktivieren und ein Skript zu erstellen, das den Registerkartennamen folgendermaßen festlegt:
#!/usr/bin/env python3.7
import argparse
import iterm2
def get_args():
parser = argparse.ArgumentParser(description='Set the tab name')
parser.add_argument('name')
return parser.parse_args()
ARGS = get_args()
async def main(connection):
app = await iterm2.async_get_app(connection)
window = app.current_terminal_window
if window is not None:
tab = window.current_tab
await tab.async_set_title(ARGS.name)
else:
# You can view this message in the script console.
print("No current window")
iterm2.run_until_complete(main)
Gespeichert als "tab_name.py", dann aufgerufen mit:
~/Library/ApplicationSupport/iTerm2/iterm2env/versions/*/bin/python3 ~/Library/ApplicationSupport/iTerm2/Scripts/tab_name.py "new tab name"
Es ist nicht annähernd so schön oder elegant wie die akzeptierte Antwort, aber es funktioniert.
iTerm -> Einstellungen -> Darstellung -> Fenster- und Tabulatortitel -> Aktivieren Sie die Option Profilnamen anzeigen