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 zsh
Konfigurationsdateien, um den Titel in der precmd()
Funktion auf z $PWD
.
echo -ne "\e]1;$PWD\a"
Über die precmd
Funktion können Sie im man zshmisc
Abschnitt 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 precmd
macht den Trick. Einige oh-my-zsh-Themen spielen jedoch mit dem Fenstertitel herum. Legen Sie PR_TITLEBAR
eine 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_profile
fü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.
General
Registerkarte, es ist unter der Profiles
Registerkarte
> 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