Нажмите на синий текст:
Так что вам просто нужно добавить эту маленькую escape-последовательность в приглашение, чтобы Терминал знал, где вы находитесь. Легкий!
Или, если вы думаете, что это немного загадочно, давайте посмотрим, как bash справляется с этим. Проверка man bash
показывает, что когда bash вызывается как интерактивная оболочка входа в систему (, это должно быть по умолчанию при открытии окна терминала или вкладки ), один из файлов, на которые он ссылается, — /etc/profile
.
Быстрый взгляд на /etc/profile
показывает, что он может загрузить /etc/bashrc
.
А заглянув внутрь /etc/bashrc
, видно, что он пытается загрузить /etc/bashrc_$TERM_PROGRAM
. Быстрая проверка:
> echo $TERM_PROGRAM
Apple_Terminal
А less /etc/bashrc_Apple_Terminal
позже, и джек-пот! В самом верху:
# Tell the terminal about the current working directory at each prompt.
За ней следует функция, которая делает именно это и готова для включения в приглашение (bash ). Я воздержусь от копирования функции здесь, так как я не совсем уверен в законности этого, хотя я включу последнюю строку функции, так как я считаю, что это достаточно тривиально, чтобы быть добросовестным:
printf '\e]7;%s\a' "file://$HOSTNAME$url_path"
По сути, это загадочная управляющая последовательность из всплывающего окна настроек. Остальная часть функции полностью посвящена настройке переменной $url_path
с необходимой процентной кодировкой _. Вам нужно будет перевести этот материал в zsh или просто извлечь его во внешний скрипт bash и вызвать его, хотя запуск экземпляра bash каждый раз может немного замедлить ваше приглашение.