Eshell: Vá para a linha de prompt ao pressionar as teclas

8

Às vezes, quando eu rolar para cima no eshell, point deixa a linha de prompt de comando para permanecer na área visível. Quando insiro um comando, não o insiro no prompt, mas insira o texto em algum lugar na saída dos comandos chamados anteriormente. Isso é muito chato.

Como posso garantir que os retornos do eshell aponte para o prompt de comando quando insiro um caractere, como em outros shells?

/ edit: Aqui está um screencast da situação. Eu digito ls, depois deslizo para cima para revisar a saída e decido que quero fazer a cd .., mas, como apenas insere o comando no ponto, acaba sendo um lixo.

eshell-scroll-point

Geier
fonte
Eu não acho isso irritante. No Eshell, você pode executar um comando de qualquer lugar e usar a saída anterior, não apenas após o último prompt de comando, é obviamente um recurso muito interessante. Para mim, esse recurso é o principal motivo pelo qual eu uso o Eshell. Para ir ao último prompt de comando, eu uso M->.
xuchunyang
Existe a possibilidade de fornecer uma captura de tela de um caso em que o ponto sai da linha de comando e você gostaria de retornar o ponto ao prompt de comando inserindo um caractere arbitrário? O ponto esquerdo está na mesma linha que o último prompt? Você gostaria de retornar ao último prompt? E se houver algum texto incompleto no último prompt?
Name
@xuchunyang: O problema é que o ponto se afasta do prompt quando eu não quero (ou seja, quando eu rolar para cima, veja o screencast). Portanto, manter o ponto no prompt, a menos que eu o mova sozinho para algum lugar seria a solução 'real'. Parece que o ponto deve sempre estar na área visível no emacs.
Geier

Respostas:

5
(setq eshell-scroll-to-bottom-on-input t)

deve fazer o que quiser.

xuchunyang
fonte
Isso parece funcionar.
Name
1
Sim, isso funciona. Aqui está um screencast: i.imgur.com/Mjzt8j2.gif
Geier
0

Acho que o que você está procurando é o comportamento do Smart Shell do Plan 9 no Emacs. Mickey Peterson abordou o assunto em seu recente livro Mastering Emacs , que envolve adicioná-los ao seu arquivo init.el:

(require 'eshell)
(require 'em-smart)
(setq eshell-where-to-jump 'begin)
(setq eshell-review-quick-commands nil)
(setq eshell-smart-space-goes-to-end t)
Usuário Emacs
fonte
Não funciona :(
Geier
Já existem três opções com o mesmo valor que você definiu (pelo menos no Emacs 25 que estou usando), portanto, você pode não defini-las novamente agora.
xuchunyang