Perdendo funcionalidade ao personalizar a função eshell-prompt para emacs

Perdendo funcionalidade ao personalizar a função eshell-prompt para emacs

Eu queria suprimir o diretório de trabalho atual do prompt do eshell, como faço na linha de comando, porque ele ocupa muito espaço na tela. Usando C-h veu verifico se o valor padrão é:

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

e tentei mudar para isso no meu .emacs:

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

mas quando faço o que foi dito acima, certas teclas quebram. Por exemplo, não posso mais M-pnavegar pelos comandos anteriores e C-c C-anão definirei o ponto para o início do comando que estou digitando, como acontece com o prompt padrão. Eu estou querendo saber por que isso está acontecendo e se há uma maneira de contornar isso?

Obrigado

Responder1

eshell-bol usa a função eshell-skip-prompt para ignorar o prompt. Como você alterou o prompt para terminar com > em vez de $, você precisa alterar o valor de eshell-prompt-regexp. Alterá-lo para ^>deve permitir que funcione.

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.

informação relacionada