1

Я хотел скрыть текущий рабочий каталог из командной строки для eshell, как я это делаю в командной строке, потому что он занимает много места на экране. Используя C-h v я проверяю, что значение по умолчанию:

Value:
(lambda nil
  (concat
   (eshell/pwd)
   (if
       (=
        (user-uid)
        0)
       " # " " $ ")))

и я попытался изменить это в моем .emacs:

(setq eshell-prompt-function
      (lambda () "> "))

но когда я делаю выше, некоторые ключи ломаются. Например, я больше не могу использовать M-p для просмотра предыдущих команд, а C-c C-a не будет указывать начало команды, которую я набираю, как это происходит с приглашением по умолчанию. Мне интересно, почему это происходит, и есть ли способ обойти это?

Спасибо

1 ответ1

1

eshell-bol использует функцию eshell-skip-prompt для обхода приглашения. Поскольку вы изменили приглашение, чтобы оно заканчивалось символом> вместо $, вам нужно изменить значение eshell-prompt-regexp. Изменение его на ^> должно позволить ему работать.

eshell-prompt-regexp is a variable defined in `em-prompt.el'.
Its value is "^[^#$
]* [#$] "

Documentation:
A regexp which fully matches your eshell prompt.
This setting is important, since it affects how eshell will interpret
the lines that are passed to it.
If this variable is changed, all Eshell buffers must be exited and
re-entered for it to take effect.

You can customize this variable.

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