Por supuesto, cuando estoy en la Terminal y presiono la tecla de flecha hacia arriba, va al comando anterior. Sin embargo, cuando presiono las M-xteclas y shell
escribo, aparece un shell integrado en Emacs:
Sin embargo, si escribo un comando y presiono hacia arriba, esto sucede:
¿Cómo vuelvo al último comando que escribí?
RET
. Por supuestoC-up
es mucho más fácil.Respuestas:
La función que retrocede a través del historial de entrada, guardando la entrada. es
comint-previous-input
Se ve obligada a C-up, M-p.
fuente
Acabo de encontrar una respuesta en Super Usuario:
¿Cómo ejecutas el comando anterior en emacs shell?
M-p va al comando anterior.
fuente
Puede usar helm-eshell-history para la selección interactiva del historial y reemplazar el original
C-c C-l
:fuente
Mis comandos favoritos para recorrer el historial de comandos de shell son
comint-previous-matching-input-from-input
ycomint-next-matching-input-from-input
. Si el mensaje está vacío, se comportarán exactamente igualcomint-previous-input
ycomint-next-input
recorrerán todos los elementos del historial. Sin embargo, si ha ingresadorake
, por ejemplo, recorrerán su historial de comandos de shell desde los comandos que comienzan conrake
.Por defecto, estos están vinculados a
C-c M-r
yC-c M-s
respectivamente, pero encuentro que no son ideales. Los estoy vinculando personalmente aM-TAB
y<M-S-tab>
.fuente
Otra posibilidad, si usa Icicles : Use
C-c TAB
(comandoicicle-comint-command
) para elegir un comando ingresado previamente con finalización (o ciclo).fuente
Las cosas han cambiado un poco en Eshell, así que aquí está mi solución de trabajo actualizada para usar helm-eshell-history
fuente