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

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

Terminal - fish - 80x24

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

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

3 ответа

Решение

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

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

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

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

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

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

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

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

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

$ funced fish_title

function fish_title
    if [ $_ = 'fish' ]
        echo (prompt_pwd)
    else
        echo $_
    end
end

$ funcsave fish_title

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

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

Другие вопросы по тегам