Я установил рыбу (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
вариантами. И если вы сделаете это, пожалуйста, верните его обратно в рыбный проект.