Відповіді:
Ви можете ввести наступне в, 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.

Profiles > Terminal > Terminal Emulation > Terminal may set tab/window title.
iTerm2(3.2.9)
Що для мене працює:
echo -e "\033];this is the title\007"
Якщо ви використовуєте Mac OSX та iTerm, iTerm2 ::
Якщо ви використовуєте 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.
.bashrc, правда?
DISABLE_AUTO_TITLE="true"який вирішив проблему, і таким чином, якщо я не встановити заголовок, я все одно отримаю функцію автоматичного заголовка
A precmdробить трюк. Однак деякі теми о-мі-зш псуються із заголовком вікна. Встановіть 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 у розділі Налаштування -> Зовнішній вигляд.
Жодна з відповідей, здається, не працює для мене, ймовірно, для версії iterm2 (3.3.3).
Я дізнався це: https://gist.github.com/phette23/5270658#gistcomment-3020766
По суті, ви можете робити все, що сказано в усіх інших відповідях, але також потрібно встановити
Preferences > Profiles > General > Title -> Name (Job)
Це працювало для мене.
Generalвкладкою, це під Profilesвкладкою
> Profilesодного. Моє ліжко. Оновлено.
Прийнята відповідь працювала для мене тривалий час, але зараз вона порушена в останній версії iTerm2. Я знайшов вирішення, щоб увімкнути API Python та створити скрипт, який встановлює назву вкладки так:
#!/usr/bin/env python3.7
import argparse
import iterm2
def get_args():
parser = argparse.ArgumentParser(description='Set the tab name')
parser.add_argument('name')
return parser.parse_args()
ARGS = get_args()
async def main(connection):
app = await iterm2.async_get_app(connection)
window = app.current_terminal_window
if window is not None:
tab = window.current_tab
await tab.async_set_title(ARGS.name)
else:
# You can view this message in the script console.
print("No current window")
iterm2.run_until_complete(main)
Збережено як "tab_name.py", а потім викликається:
~/Library/ApplicationSupport/iTerm2/iterm2env/versions/*/bin/python3 ~/Library/ApplicationSupport/iTerm2/Scripts/tab_name.py "new tab name"
Це не так приємно чи елегантно, як прийнята відповідь, але це працює.
iTerm -> Налаштування -> Зовнішній вигляд -> Назви вікон та вкладок -> прапорець Показати опцію імені профілю