Я хотел отключить текущий рабочий каталог из приглашения eshell, как я делаю в командной строке, потому что он занимает много места на экране. Используя C-h v
i, проверьте, что значение по умолчанию:
Value:
(lambda nil
(concat
(eshell/pwd)
(if
(=
(user-uid)
0)
" # " " $ ")))
и я попробовал изменить это на это в моем .emacs
:
(setq eshell-prompt-function
(lambda () "> "))
но когда я делаю вышеперечисленное, некоторые клавиши ломаются. Например, я больше не могу использовать M-p
для просмотра предыдущих команд и C-c C-a
не устанавливаю точку на начало команды, которую набираю, как это происходит с приглашением по умолчанию. Мне интересно, почему это происходит и есть ли способ обойти это?
Спасибо
решение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.