В iTerm2 (сборка 1.0.0.20120203) я обычно открываю несколько вкладок, каждая из которых имеет разделенные панели, и посвящена одной конкретной теме работы, например, контроль версий, кодирование, управление файлами, работа терминала mysql. Обычно мне нужно переключаться между 5 или более вкладками в моем рабочем процессе. Иногда трудно вспомнить или сказать, что есть, глядя на содержимое экрана. Я хотел бы назвать вкладки как-нибудь, чтобы я мог быстро узнать, что есть, что, быстро взглянув. Это возможно?
13 ответов
Так как вы используете iterm2 на Mac, другой вариант - вы можете просто нажать Cmd I, набрать что-нибудь и нажать ESC.
Терминальное решение немного быстрее, чем это, но просто хотел, чтобы вы знали.
Я нашел следующую функцию, помещенную в мой ~/.bashrc
, полезной:
function title {
echo -ne "\033]0;"$*"\007"
}
Затем я могу вызвать его из моего приглашения bash следующим образом:
> title I want a pony!
И моя вкладка получает соответствующее название.
запустите эту команду, чтобы установить заголовок вашей вкладки или окна:
export PROMPT_COMMAND='echo -ne "\033]0;YOUR NAME HERE\007"'
я добавил следующее в мой ~/.bash_profile
чтобы всегда перечислять текущий каталог относительно моего домашнего каталога:
export PROMPT_COMMAND='echo -ne "\033]0;${PWD/#$HOME/~}\007"'
полезно, когда в доке 100 свернутых терминалов
Добавьте эту функцию в файл ~/.bash_profile
и она должна работать.
function title ()
{
TITLE=$*;
export PROMPT_COMMAND='echo -ne "\033]0;$TITLE\007"'
}
Я использовал решения, подобные вышеописанным, довольно давно, но я использую достаточно вкладок, поэтому я также хочу, чтобы они имели цветовую кодировку для удобства визуального ознакомления. Поэтому я выбрал tabset, утилиту для установки названия вкладки, значка и цвета в зависимости от вида работы, которую я выполняю на каждой вкладке.
Требуется узел, но теперь это общепринятая платформа. Установить:
npm install -g iterm2-tab-set
Мне нравится этот:
#setup terminal tab title
function title {
if [ "$1" ]
then
unset PROMPT_COMMAND
echo -ne "\033]0;${*}\007"
else
export PROMPT_COMMAND='echo -ne "\033]0;${PWD/#$HOME/~}\007"'
fi
}
title
Это позволит вам переключать имя вкладки между пользовательским именем и значением по умолчанию вашего CWD.
title
-> заголовок вашей вкладки будет ~/YOUR_CWD/
title hey there
-> заголовок вашей вкладки будет hey there
Мне очень нравится ответ Тейлорстайн, но он нарушает интеграцию оболочки iTerm2, которая зависит от переменной PROMPT_COMMAND
. Вы можете изменить код Тейлора, чтобы исправить это, добавив __bp_precmd_invoke_cmd
обратно в PROMPT_COMMAND
каждый раз, когда вы возитесь с ним:
# iTerm2 shell integration
test -e "${HOME}/.iterm2_shell_integration.bash" && source "${HOME}/.iterm2_shell_integration.bash"
# iTerm2 tab titles
function title {
if [ "$1" ]
then
export PROMPT_COMMAND='__bp_precmd_invoke_cmd'
echo -ne "\033]0;${*}\007"
else
export PROMPT_COMMAND='echo -ne "\033]0;${PWD/#$HOME/\~}\007";__bp_precmd_invoke_cmd'
fi
}
title
Мне нравится ответ Майкла .
Но что, если .iterm2_shell_integration.bash
не существует?
Вот мое мнение:
# iTerm2 shell integration
test -e "${HOME}/.iterm2_shell_integration.bash" && source "${HOME}/.iterm2_shell_integration.bash"
# iTerm2 tab titles
function title {
if [ "$1" ] ; then
test -e "${HOME}/.iterm2_shell_integration.bash" \
&& export PROMPT_COMMAND='iterm2_preexec_invoke_cmd' \
|| unset PROMPT_COMMAND
echo -ne "\033]0;${*}\007"
else
test -e "${HOME}/.iterm2_shell_integration.bash" \
&& export PROMPT_COMMAND='echo -ne "\033]0;${PWD/#$HOME/~}\007";iterm2_preexec_invoke_cmd' \
|| export PROMPT_COMMAND='echo -ne "\033]0;${PWD/#$HOME/~}\007"'
fi
}
title
Preferences -> Profiles -> Terminal
uncheck Terminal may set Tab/Window title
Комментарий Макса Кантора сработал для меня.
Я хотел бы немного расширить ответ B Seven для абсолютной ясности.
Поскольку большинству из нас хотелось бы знать, как можно установить заголовок вкладки, даже если она не находится в локальной оболочке, а не в удаленной оболочке (например, через ssh).
Шаг 1. Preferences -> Profiles -> Terminal
uncheck Terminal may set Tab/Window title
Шаг 2. Для каждой вкладки double click on the tab -> Session Title
Теперь, что бы вы ни указали в заголовке сессии, все останется как есть.
Я думаю, что автоматическое переключение профилей и значки предназначены именно для того, что вам нужно:
Автоматическое переключение профилей iTerm2 может использовать информацию, которую он знает о вашем текущем пути, имени хоста и имени пользователя, для изменения профилей. Например, цвет фона вашего окна или кодировка символов терминала могут измениться при подключении к разным хостам.
Значки Вы можете поместить значок в правом верхнем углу вашего терминала, показывая информацию о текущем сеансе. Он может показать ваше имя пользователя, имя хоста или даже пользовательские данные, такие как текущая ветка git.
поэтому результат может выглядеть так:
Юк, все эти псевдонимы и функции. Более простое решение (если вы root), вставьте его в терминал:
TARGET=/usr/bin/title
sudo tee "$TARGET" <<'EOF'
#!/usr/bin/env bash
echo -ne "\033]0;$*\007"
EOF
sudo chmod 755 "$TARGET"
Или просто создайте заголовок вызова файла где-нибудь на вашем пути, или глобальный путь, и вставьте две строки между EOF.