É claro que quando estou no Terminal e pressiono a tecla de seta para cima, ele passa para o comando anterior. No entanto, quando eu clico nas M-xteclas e digito, shell
um shell integrado aparece no Emacs:
No entanto, se eu digitar um comando e pressionar, isso acontece:
Como faço para voltar ao último comando digitado?
RET
. Claro queC-up
é muito mais fácil.Respostas:
A função que retrocede no histórico de entrada, salvando a entrada. é
comint-previous-input
Ele é obrigado a C-up, M-p.
fonte
Acabei de encontrar uma resposta no Super Usuário:
Como você executa o comando anterior no shell emacs?
M-p vai para o comando anterior.
fonte
Você pode usar helm-eshell-history para a seleção interativa do histórico e substituir o original
C-c C-l
:fonte
Meus comandos favoritos para percorrer o histórico de comandos do shell são
comint-previous-matching-input-from-input
ecomint-next-matching-input-from-input
. Se o prompt estiver vazio, eles se comportarão exatamente comocomint-previous-input
ecomint-next-input
percorrerão todos os itens do histórico. Embora se você tiver digitadorake
, por exemplo, eles percorrerão o histórico de comandos do shell, começando comrake
.Por padrão, eles estão vinculados
C-c M-r
eC-c M-s
respectivamente, mas acho que não são ideais. Eu pessoalmente estou lhes ligação aM-TAB
e<M-S-tab>
.fonte
Outra possibilidade, se você usar Sincelos : Use
C-c TAB
(comandoicicle-comint-command
) para escolher um comando digitado anteriormente com conclusão (ou ciclo).fonte
As coisas mudaram um pouco em Eshell, então aqui está minha solução de trabalho atualizada para usar helm-eshell-history
fonte