Как мне установить название Terminal.app с рыбной раковиной?

3412
Lorin Hochstein

Я пробую рыбную оболочку в Mac OS X, установленную с помощью MacPorts. Я бы хотел, чтобы заголовок моего окна терминала был моим текущим каталогом. В настоящее время название просто говорит

Terminal - fish - 80x24 

Согласно документации по рыбе, fish_titleфункция по умолчанию должна обеспечивать это поведение. В Terminal.app он работает неправильно, хотя работает с iTerm . Определение моей собственной функции fish_title не решает проблему.

Кто-нибудь смог заставить это работать?

2
Пожалуйста, оставьте свой код, который устанавливает fish_title. Chris Page 12 лет назад 1
Это установит заголовок окна в bash и zsh: `printf '\ e] 2; Заголовок пользовательского окна \ a'` Работает ли это в рыбе? Chris Page 12 лет назад 0
Для сравнения попробуйте сделать это с помощью fish в xterm и посмотрите, работает ли он там. Еще одна вещь, которую нужно проверить - это значение $ TERM. В Lion Terminal изменил значение по умолчанию с «xterm-color» на «xterm-256color». Возможно, fish зависит от $ TERM, чтобы решить, следует ли на самом деле выдавать escape-последовательность для установки заголовка. Chris Page 12 лет назад 0

3 ответа на вопрос

6
Dennis

Если вы обнаружили, что этот вопрос интересует, как изменить заголовок окна / вкладки в fish, и fish_titleфункция работает для вас (см . Ответ Криса Пейджа ), то вот пример, в котором для заголовка используется сокращенная версия вашего рабочего каталога.

$ funced fish_title  function fish_title if [ $_ = 'fish' ] echo (prompt_pwd) else echo $_ end end  $ funcsave fish_title 
2
Chris Page

Я установил рыбу (1.23.1), чтобы исследовать это. Оказывается, что рыба обновляет только название, если $TERMэто один из следующих xterm, screen, nxterm, rxvt. В противном случае он никогда не вызывает fish_titleфункцию.

Значение терминала по умолчанию - xterm-256colorи до Mac OS X Lion 10.7 оно не было xterm-color, ни одно из которых не распознается рыбой. Рыба просто неразумно консервативна в отношении того, какие значения terminfo, по ее мнению, поддерживают эту функцию. fish_titleне вызывается для любых xterm*вариантов, например.

Чтобы обойти это ограничение рыбы, вы можете установить $TERMна xterm. Самый простой способ сделать это с настройкой терминала:

Терминал> Настройки> Настройки> [профиль]> Дополнительно> Объявить терминал как

Выберите xtermиз всплывающего меню. Это предпочтение контролирует значение $TERM(это все, что он делает).

Обратите внимание, что использование xtermвместо терминала по умолчанию может отключить некоторые функции терминала или, до Lion, вызвать неправильное поведение из-за несовместимости между xtermописанием terminfo и более ранними версиями терминала.

Поэтому, если fish не является вашей оболочкой по умолчанию, вы можете изменить ее только $TERMпри вызове fish. Например, вы можете вызывать рыбу с TERM=xterm fishпомощью оболочки или создать собственный профиль настроек Терминала только для запуска рыбы (вы можете установить предпочтение «Выполнить команду» для вызова рыбы, поэтому создание нового окна терминала или вкладки с этим профилем автоматически запускать рыбу).

Или, если вы не стесняетесь модифицировать fish: после того, как вы установили ее через MacPorts или Fink, у вас есть исходники, расположенные на вашем компьютере, и вы можете расширить список распознанных значений $ TERM или даже обновить код до учитывайте суффиксы на распознанных значениях. например, он должен по крайней мере разрешить любые значения, начинающиеся с xtermили screen. В противном случае он даже не будет работать с общими screenвариантами. И если вы сделаете это, пожалуйста, верните его обратно в рыбный проект.

-1
deau

Скорее всего, это связано с конфигурацией Terminal.app. Я использую Терминал 2.0.2 на Leopard, который позволяет мне настраивать заголовок окна через настройки (см. Настройки -> окно).

Возможно, включение «имени команды оболочки» может дать желаемый результат. По умолчанию это просто отображение, которое, Terminal - $process - $sizeвероятно, нарушает рыбную среду.

Я не уверен в этом. Например, в bash можно установить заголовок, следуя этим инструкциям: http://superuser.com/questions/79972/set-the-title-of-the-terminal-window-to-the-current-directory. Но эти инструкции не работают для раковины рыбы. fideli 14 лет назад 0
Ни одна из настроек Терминала не будет переопределять или отключать escape-последовательность для установки заголовков окна и вкладки. Chris Page 12 лет назад 0

Похожие вопросы