Я хочу пометить вкладки окна терминальных сессий. Я использую 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 -> Настройки -> Внешний вид -> Заголовки окон и вкладок -> установить флажок Показать имя профиля