162

В iTerm2 (сборка 1.0.0.20120203) я обычно открываю несколько вкладок, каждая из которых имеет разделенные панели, и посвящена одной конкретной теме работы, например, контроль версий, кодирование, управление файлами, работа терминала mysql. Обычно мне нужно переключаться между 5 или более вкладками в моем рабочем процессе. Иногда трудно вспомнить или сказать, что есть, глядя на содержимое экрана. Я хотел бы назвать вкладки как-нибудь, чтобы я мог быстро узнать, что есть, что, быстро взглянув. Это возможно?

13 ответов13

196

Так как вы используете iterm2 на Mac, другой вариант - вы можете просто нажать Cmd I, набрать что-нибудь и нажать ESC.

Терминальное решение немного быстрее, чем это, но просто хотел, чтобы вы знали.

112

Я нашел следующую функцию, помещенную в мой ~/.bashrc , полезной:

function title {
    echo -ne "\033]0;"$*"\007"
}

Затем я могу вызвать его из моего приглашения bash следующим образом:

> title I want a pony!

И моя вкладка получает соответствующее название.

41

запустите эту команду, чтобы установить заголовок вашей вкладки или окна:

export PROMPT_COMMAND='echo -ne "\033]0;YOUR NAME HERE\007"'

я добавил следующее в мой ~/.bash_profile чтобы всегда перечислять текущий каталог относительно моего домашнего каталога:

export PROMPT_COMMAND='echo -ne "\033]0;${PWD/#$HOME/~}\007"'

полезно, когда в доке 100 свернутых терминалов

хет кончик в мир макинтош

15

Добавьте эту функцию в файл ~/.bash_profile и она должна работать.

function title ()
{
    TITLE=$*;
    export PROMPT_COMMAND='echo -ne "\033]0;$TITLE\007"'
}
13

Я использовал решения, подобные вышеописанным, довольно давно, но я использую достаточно вкладок, поэтому я также хочу, чтобы они имели цветовую кодировку для удобства визуального ознакомления. Поэтому я выбрал tabset, утилиту для установки названия вкладки, значка и цвета в зависимости от вида работы, которую я выполняю на каждой вкладке.

пример

Требуется узел, но теперь это общепринятая платформа. Установить:

npm install -g iterm2-tab-set
7

Мне нравится этот:

#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

4

Мне очень нравится ответ Тейлорстайн, но он нарушает интеграцию оболочки 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
3

Мне нравится ответ Майкла .

Но что, если .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
2
Preferences -> Profiles -> Terminal
  uncheck Terminal may set Tab/Window title

Комментарий Макса Кантора сработал для меня.

2

Если вы работаете с профилями (что очень удобно): Настройки -> Внешний вид -> Заголовки окон и вкладок: установите флажок «Показать имя профиля»:

образ

Вот как это выглядит после:

миниатюра, связанная с основным изображением

0

Я хотел бы немного расширить ответ B Seven для абсолютной ясности.

Поскольку большинству из нас хотелось бы знать, как можно установить заголовок вкладки, даже если она не находится в локальной оболочке, а не в удаленной оболочке (например, через ssh).

Шаг 1. Preferences -> Profiles -> Terminal uncheck Terminal may set Tab/Window title

Шаг 2. Для каждой вкладки double click on the tab -> Session Title

Теперь, что бы вы ни указали в заголовке сессии, все останется как есть.

0

Я думаю, что автоматическое переключение профилей и значки предназначены именно для того, что вам нужно:

Автоматическое переключение профилей iTerm2 может использовать информацию, которую он знает о вашем текущем пути, имени хоста и имени пользователя, для изменения профилей. Например, цвет фона вашего окна или кодировка символов терминала могут измениться при подключении к разным хостам.

Значки Вы можете поместить значок в правом верхнем углу вашего терминала, показывая информацию о текущем сеансе. Он может показать ваше имя пользователя, имя хоста или даже пользовательские данные, такие как текущая ветка git.

поэтому результат может выглядеть так:

-1

Юк, все эти псевдонимы и функции. Более простое решение (если вы root), вставьте его в терминал:

TARGET=/usr/bin/title
sudo tee "$TARGET" <<'EOF'
#!/usr/bin/env bash
echo -ne "\033]0;$*\007"
EOF
sudo chmod 755 "$TARGET"

Или просто создайте заголовок вызова файла где-нибудь на вашем пути, или глобальный путь, и вставьте две строки между EOF.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .