2

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

Terminal - fish - 80x24

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

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

3 ответа3

7

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

$ funced fish_title

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

$ funcsave fish_title
2

Я установил рыбу (1.23.1), чтобы исследовать это. Оказывается, что fish обновляет заголовок, только если $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 при вызове fish. например, вы можете вызывать рыбу с помощью TERM=xterm fish из оболочки, или вы можете создать собственный профиль настроек терминала только для запуска рыбы (вы можете установить предпочтение "Выполнить команду" для вызова рыбы, поэтому создайте новое окно терминала или вкладку с этим профилем будет автоматически бегать рыба).

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

-1

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .