В режиме ansi-term emacs (возможно, это единственный способ получить реальную силу рыбы внутри emacs) подсказка выглядит так:
2; рыба / дом / ахятт2; рыба / дом / ахятт
ахятт @ahyatt / home / ahyatt>
Мой термин - eterm-color, стандартный для ansi-term. Возможно, некоторые из управляющих последовательностей ansi по умолчанию в приглашении не совсем кошерные.
После того, как я сообщил об этом, я случайно заметил, что это задокументировано в исходной документации по рыбам с исправлением: echo 'function fish_title; end'> ~ / .config / fish / config.fish
Однако у меня это не работает:
Добро пожаловать в дружественную интерактивную оболочку Fish
Введите helpB для получения инструкций по использованию рыбы.
fish: Неизвестная функция «fish_title»
fish: Неизвестная функция «fish_title»
ахятт @ahyatt ~>
У меня точно такая же проблема, но с iTerm.
«Исправление» у меня тоже не сработало.
Вышеупомянутое исправление близко. Добавление:
function fish_title
true
end
в ~ / .config / fish / config.fish исправил это для меня в Emacs 24.1
Это тот самый.
+1
@akrito Спасибо! У меня это тоже сработало.
Хак с названием рыбы у меня не работает. Заголовок может отсутствовать, но папка, отображаемая на плитке, по-прежнему изменяется (при просмотре из iterm)
@SlightlyCyborg : Если вы не используете название рыбы, вы получите папку, отображаемую дважды (и только один раз с ней)? Если вы используете его на другом терминале, он работает?
iTerm имеет специальную интеграцию с оболочками , а версия fish не зависит от того, что $ TERM является iTerm, а только помещает экран в черный список. По умолчанию этот файл будет сохранен как ~/.iterm2_shell_integration.fish
, поэтому вы можете посмотреть, что произойдет, когда вы его удалите.
@faho Я проверил его только на iterm (оказывается, это просто стандартный терминал Mac), чтобы узнать, почему я все еще получаю странную строку, напечатанную на термине emacs каждый раз, когда я использовал cd
7;file://Collins-MacBook-Air.local/Users/collinbell/dameon
Да, если я удалю fish_title из конфигурации, то я увижу, что папка дважды появится в приложении Mac Terminal. То же самое происходит и в термине emacs.
@SlightlyCyborg : Запустите это:
if test "$VTE_VERSION" -ge 3405 -o "$TERM_PROGRAM" = "Apple_Terminal"
echo "True"
end
Он печатает "истина"? В этом случае это _our_ cwd-отчет для VTE или Apple Terminal. Поскольку вы запускаете emacs в терминале, который может с этим справиться, мы его печатаем, но затем emacs искажает его, так что термин больше не получает полную последовательность (еще одно ограничение ansi-term).
Возможно, нам придется сделать то, что Apple делает для Emacs:
/etc/bashrc_Apple_Terminal
# Working Directory
#
# Tell the terminal about the current working directory at each prompt.
if [ -z "$INSIDE_EMACS" ]; then
update_terminal_cwd() {
# Identify the directory using a "file:" scheme URL, including
# the host name to disambiguate local vs. remote paths.
# Percent-encode the pathname.
local url_path=''
{
# Use LC_CTYPE=C to process text byte-by-byte. Ensure that
# LC_ALL isn't set, so it doesn't interfere
https://gist.github.com/floam/f535842a16226e77d014d67bade2b2f3
Я собираюсь добавить проверку $ INSIDE_EMACS для CWD OSC и определить пустой fish_title, если пользователь использует VTE / Terminal.app. Причина последнего заключается в том, что оба этих современных терминала составляют более приятный заголовок, если мы не пытаемся предоставить собственный (без пути в заголовке дважды, «рыба» в заголовке дважды) - и пользователь может настроить, какие компоненты они d, как в своем терминале в настройках терминала.
До и после в Terminal.app (вы можете настроить Terminal.app, чтобы отображать полный путь, если хотите):
Меня сбила интеграция оболочки iTerm. Можем ли мы упомянуть это и в ридми в разделе рыбы?
@rdrey : IIRC, iTerm поставляет это, так что вам придется заняться этим вместе с ними.
Извините, вчера вечером я был в совершенно неправильном репо. Я думал, что комментирую проблему в https://github.com/syl20bnr/spacemacs/tree/master/layers/%2Btools/shell. 😅
Вместо этого я создал PR для iTerm2. (https://github.com/gnachman/iterm2-website/pull/35)
Самый полезный комментарий
Вышеупомянутое исправление близко. Добавление:
в ~ / .config / fish / config.fish исправил это для меня в Emacs 24.1