Ответы:
Вы можете ввести следующее, 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"
которая исправила проблему, и таким образом, если я не установил заголовок, я все еще получаю функцию автоматического заголовка
А 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 в Настройки -> Внешний вид.
Мне кажется, что ни один из ответов не работает, возможно, для версии iterm2 (3.3.3).
Я узнал об этом: https://gist.github.com/phette23/5270658#gistcomment-3020766
По сути, вы можете делать то, что сказано во всех других ответах, но также необходимо установить
Preferences > Profiles > General > Title -> Name (Job)
Это сработало для меня.
General
вкладке, это на Profiles
вкладке
> Profiles
один. Виноват. Обновлено.
Принятый ответ работал для меня в течение длительного времени, но теперь он не работает в последней версии iTerm2. Обходной путь, который я нашел, состоял в том, чтобы включить Python API и создать скрипт, который устанавливает имя вкладки следующим образом:
#!/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 -> Настройки -> Внешний вид -> Заголовки окон и вкладок -> отметьте опцию Показать имя профиля