Mir ist bekannt, dass der iTerm2-Fenstertitel mit eingestellt werden kann
echo -ne "\033]0;"Title goes here"\007"
aber das scheint nur den Titel für einen einzelnen Bereich festzulegen . Wenn ich die Bereiche wechsle, wird der Fenstertitel geändert.
Wie kann ich den Fenstertitel schnell/automatisch so einstellen, dass er für alle Bereiche gleich ist?
Wenn Sie nur nach einem statischen Titel suchen, können Sie diese Zeile zu Ihrem ~/.bash_profile hinzufügen. Achten Sie nur darauf, es zu laden, um es zu laden:
source ~/.bash_profile
Andernfalls könnten Sie einen Alias verwenden. Diese werden auch in Ihrem ~/.bash_profile hinzugefügt:
alias title1='echo -ne "\033]0;"Title goes here"\007"'
alias title2='echo -ne "\033]0;"Other Title goes here"\007"'
Hoffentlich hilft das!
Am Ende habe ich das gelöst, indem ich die folgenden Zeilen zu meiner hinzugefügt habe .bashrc
.
# Private variables
_title_file=$HOME/.title
_win_num=${TERM_SESSION_ID%%t*}
_win_num=${_win_num#w}
# Record title from user input, or as user argument
_title_set() { # default way is probably using Cmd-I in iTerm2
[ -z "$TERM_SESSION_ID" ] && return 1
if [ $# -gt 0 ]; then
_title="$*"
else
read -r -p "Window title (window $_win_num):" _title
fi
[ -z "$_title" ] && _title="window $_win_num"
[ -e "$_title_file" ] || touch "$_title_file"
sed -i '/^'"$_win_num"':.*$/d' "$_title_file" # remove existing title from file
echo "$_win_num: $_title" >> "$_title_file" # add to file
}
# Retrieve title from the hidden file
_title_get() {
if [ -r "$_title_file" ]; then
_title=$(grep "^$_win_num:.*$" "$_title_file" 2>/dev/null | cut -d: -f2-)
else
unset _title
fi
_title=$(echo "$_title" | sed $'s/^[ \t]*//;s/[ \t]*$//')
}
# Update the title
_title_update() {
_title_get # set _title to existing window title if possible
[ -n "$_title" ] || _title_set # set title name
echo -ne "\033]0;$_title\007" # re-assert title, in case changed
}
# Add a prompt command
_prompt() {
export PROMPT_COMMAND=$(echo "$PROMPT_COMMAND; $1" | sed 's/;[ \t]*;/;/g;s/^[ \t]*;//g')
}
# Ask for a title when we create pane 0 (i.e. the first pane of a new window)
alias title='_title_set' # easier for user
[[ "$PROMPT_COMMAND" =~ "_title_update" ]] || _prompt _title_update
[[ "$TERM_SESSION_ID" =~ w?t?p0: ]] && _title_update
Die obigen Zeilen werden Sie auffordern, einen Titel einzugeben, wenn ein neues Fenster erstellt wird (mit der Standardeinstellung als "Fenster n"), und den Titel jedes Mal aktualisieren, wenn eine Eingabeaufforderung generiert wird. Sie können den Fenstertitel manuell ändern, indem Sie title <new_title>
innerhalb des gewünschten Fensters aufrufen.
Wenn Sie zu iTerm2/Preferences/Appearance gehen, gibt es auf der rechten Seite des Fensters einen Bereich, in dem Sie Namen definieren können und was auf den Registerkarten oder im Fenster angezeigt wird. Sie sollten in der Lage sein, mit diesen Einstellungen zu spielen, um ein akzeptables Ergebnis zu erzielen.
Preet-Sangha