MinTTY - новая консоль по умолчанию для Cygwin.
Какая команда оболочки (что-то, что я могу поместить в .bashrc, или даже лучше, в .zshrc), чтобы изменить заголовок окна MinTTY?
Мне бы хотелось, чтобы заголовок окна был путем к текущему каталогу, и чтобы он обновлялся при переключении каталогов внутри консоли.
$PS1
) Уже содержит последовательность управления, которая устанавливает заголовок окна в user @ machine: working_directory.-T <title>
в свойствах ярлыка Windows. Также смmintty man page
.Ответы:
Что не так
Следующая команда не работает для меня:
Оказывается, что моя установка Cygwin по умолчанию включает следующее определение приглашения в .bashrc:
Обратите внимание, что первая часть подсказки (
\e]0;\w\a
) устанавливает заголовок окна каждый раз, когда появляется подсказка.Решение
Добавьте эти строки в свой,
.bashrc
которые определяют 2 функции:Затем вы можете установить пользовательский заголовок с помощью этой команды:
или вы можете вернуться к Cygwin по умолчанию (текущий путь) с помощью этой команды:
Надеюсь это поможет
источник
source ~/.bashrc
- иначе cygwin все равно будет использовать старую версию bashrc, которая была на диске при запуске cygwin. - провереноCygwin version 2.8.1 (64 bit)
- версия 2017 годаВы можете изменить это с помощью управляющей последовательности xterm, например так:
См. Http://code.google.com/p/mintty/issues/detail?id=241.
источник
Поместите это в .zshrc:
Последовательность спецсимволов в функции урегулирования заставляет MinTTY изменять заголовок окна.
В zsh , если вы определите функцию со специальным именем chpwd, она будет вызываться после каждого chdir .
Работает на WinXP, с Cygwin 1.7 и MinTTY под управлением zsh.
источник
settitle "$(pwd)@$HOST"
В bash переменная PROMPT_COMMAND может содержать множество команд, разделенных точками с запятой. Вы можете использовать это, чтобы сделать ту же самую настройку заголовка, как описано в другом ответе, который говорит о zsh.
источник
источник
Я использовал ответ Леонеля, но обнаружил, что заголовок будет мерцать только при этом, что означает, что по крайней мере команда echo работает так, как задумано. Я запустил zsh в интерактивном режиме с включенным режимом отладки, используя
Изменение каталога, очевидно, вызывает другую функцию, которая вызывается
title()
после,precmd()
иchpwd()
эффективно их переопределяет. Поэтому я подключил это к моему .zshrc, и это сработало.Если вы предпочитаете использовать
chpwd()
илиprecmd()
вместо этого, просто отключить функцию заголовка:title(){}
.источник
Просто хотел поделиться своим решением, так как я использую mintty для выполнения скрипта.
Мой мятный ярлык настроен как:
Сценарий connect.sh, который я написал и который вызывается в ярлыке выше, предложит мне указать сервер, к которому я хочу подключиться, и выполнить функцию разрешений, определенную в сценарии.
connect.sh
источник
title
если не используете ее?попробуйте добавить это в .bash_profile
export PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}:${PWD/#$HOME/~}\007"'
Меня устраивает.
источник