Как я могу заставить Terminal.app в OS X отображать текущий каталог в заголовке своего окна или вкладки?
Я использую оболочку bash.
macos
bash
terminal
terminal.app
kareman
источник
источник
Ответы:
Зависит от вашей оболочки.
Эта статья отображает несколько методов.
Я лично использую zsh, который имеет удобную функцию precmd (), которая запускается перед каждым приглашением.
Хотя другие вопросы перечислены методы bash, они псевдоним CD. Bash предоставляет собственный метод, который блокирует только подсказку.
источник
~/.profile
(или эквивалентный) файл на удаленном компьютере.Скопируйте и вставьте в файл ~ / .profile:
PROMPT_COMMAND="echo -ne \"\033]0;${PWD##*/}\007\"; $PROMPT_COMMAND"
Это установит заголовок текущей вкладки терминала на имя папки, в которой вы находитесь (НЕ весь путь).
Итак ...
Developer/Applications/Utilities/Bluetooth/
становится =>Bluetooth
источник
Начиная с Mac OS X Lion 10.7, Терминал имеет явную управляющую последовательность для установки рабочего каталога, которую Терминал отображает с помощью значка стандартного окна «прокси». Это позволяет вам щелкнуть его, удерживая клавишу Command, чтобы увидеть путь, открыть его в Finder или перетащить его, как любую другую папку. Кроме того, Терминал может использовать это для создания другого терминала в том же каталоге и для восстановления рабочего каталога при выходе из / перезапуск Терминала (когда Resume включен). Это также позволяет восстанавливать каталоги для оконных групп.
Это та же управляющая последовательность операционной системы (OSC), что и для заголовков окон и вкладок, но с первым параметром, установленным на 7. Значение должно быть URL-адресом «file:», который позволяет использовать специальные символы в процентах для обработки все действительные пути. Вам также следует указать имя хоста, чтобы терминал мог определить, является ли он локальным каталогом; Терминал не будет использовать его в качестве текущего рабочего каталога, если он находится на другом хосте.
Что касается примечания, Терминал аналогичным образом поддерживает настройку «представленного файла» с использованием escape-последовательности OSC с параметром 6. Если этот параметр установлен, значок прокси-сервера будет отображать это вместо рабочего каталога. Например, у меня есть emacs и менее настроенный для отображения текущего отображаемого файла / буфера в значке прокси. Это позволяет этим программам на основе tty быть более интегрированными с окружающей ОС.
Поведение рабочего каталога включено по умолчанию для bash (оболочка по умолчанию в Mac OS X). Смотрите / etc / bashrc для соответствующего кода.
Также, вероятно, стоит упомянуть, что Lion Terminal теперь поддерживает установку заголовка вкладки независимо от заголовка окна, используя escape-последовательность OSC.
источник
update_terminal_cwd
Функция будет установить значок прокси для текущего рабочего каталога. По умолчанию$PROMPT_COMMAND
этоupdate_terminal_cwd
.Помимо рекомендации, вы должны использовать escape-последовательность команд операционной системы Apple Terminal:
ESC ] Ps ; Pt BEL
гдеPs
есть7
иPt
естьfile:
URL; Стоит добавить, что в Mac OS X 10.11 (и, возможно, начиная с 10.7) есть файл/etc/bashrc_Apple_Terminal
(не редактируемый до 10.11), который определяет удобноеupdate_terminal_cwd()
как (без комментариев):Вы также можете использовать это на своих удаленных компьютерах, на случай, если вы подумали об этом, а затем поцарапали свою голову о правильном кодировании URL файла в bash.
И если вы измените
PROMPT_COMMAND
свои собственные.bash_profile
или.bashrc
вы можете забыть позвонить. В том же файле они показывают пример цепочки немного лучше:Лично в моем
.bash_profile
я хотел добавить приглашение git, поэтому я сделал это:источник
Решения Bash, включающие PS1 и PROMPT_COMMAND, терпят неудачу, если в каталоге есть символы Юникода (по крайней мере, на Snow Leopard). Лучшее решение, которое я мог придумать, было сделать эквивалент
К сожалению, это не работает напрямую, поэтому вместо этого я определил функцию оболочки для
tr
вызова:Это хорошо работает для латинских акцентов, которые будут в Unicode NFD (акценты исчезнут, но основной латинский символ останется).
К сожалению, это не удастся для таких вещей, как китайский.
источник
Предполагая, что вы используете терминал MAC по умолчанию, вы можете использовать следующий файл в .profile, так как «set_prompt» сам по себе может отправить вас в корневую папку при открытии новой вкладки:
источник
Введите это в ваш ~ / .profile или эквивалентный файл:
Первая строка содержит два специальных символа, которые нельзя скопировать / вставить, но вы можете скачать текст отсюда: http://blog.nottoobadsoftware.com/files/setterminaltitle.sh .
источник
echo
useprintf
, который позволяет вам выразить эти символы (ESC и BEL / Control-G) с помощью escape-последовательностей:printf '\e]0;$@\a"