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