Я хочу пометить вкладки окна терминальных сессий. Я использую zshell в iterm2 на OSX. Можно ли динамически изменить метку вкладки окна в терминале?
6 ответов
Вы можете ввести следующее в zsh чтобы установить заголовок окна iTerm2:
echo -ne "\e]1;this is the title\a"
Если вы хотите автоматизировать это для вставки, например, текущего времени или рабочего каталога, отредактируйте ваши файлы конфигурации zsh установив для заголовка в функции precmd() например, $PWD .
echo -ne "\e]1;$PWD\a"
Вы можете прочитать о функции precmd в man zshmisc в разделе SPECIAL FUNCTIONS .

Что работает для меня:
echo -e "\033];this is the title\007"
Если вы используете Mac OSX и iTerm, iTerm2::
- iTerm → Настройки → Внешний вид → Заголовки окон и вкладок → снять все
Если вы используете zsh, то вам может потребоваться изменить настройки. Ваши настройки обычно находятся в файле ~/.zshrc . Вы хотите добавить или изменить настройки, чтобы убедиться, что эта строка существует:
DISABLE_AUTO_TITLE="true"
Одним из преимуществ использования iTerm является возможность отдельно устанавливать заголовок окна и заголовок вкладки:
# $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 $@; }
Таким образом, вы можете сразу увидеть, к какому хосту вы подключены, в каком окне, а заголовок окна для каждой вкладки показывает пользователя и CWD.
precmd делает свое дело. Тем не менее, некоторые темы oh-my-zsh возятся с заголовком окна. Установите PR_TITLEBAR в пустую строку, чтобы исправить это.
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
Я бы также порекомендовал поиграть с настройками вкладок iTerm2 в Настройки -> Внешний вид.
Добавление export PROMPT_COMMAND='echo -ne "\033]0;$PWD\007"' в ~/.bash_profile сработало для меня.
iTerm -> Настройки -> Внешний вид -> Заголовки окон и вкладок -> установить флажок Показать имя профиля
