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

1

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

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

e tentei alterá-lo para isso no meu .emacs :

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

mas quando faço o que precede, certas teclas quebram. Por exemplo, não posso mais usar M-p para procurar os comandos anteriores e C-c C-a não definirá o ponto para o início do comando ao digitar, 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

    
por Palace Chan 01.11.2012 / 18:04

1 resposta

1

eshell-bol usa a função eshell-skip-prompt para ignorar o prompt. Desde que você alterou o prompt para terminar com um > em vez de $, você precisa alterar o valor de eshell-prompt-regexp. Alterá-lo para ^> deve permitir que ele 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.
    
por 01.11.2012 / 18:29

Tags