Cuando ejecuto shell-commanduna sesión nueva, no tengo acceso al historial de comandos de la última sesión. ¿Cómo puedo tener eso?
shell-command
session
RasmusWL
fuente
fuente

(savehist-mode)habilitadoM-!, la variable de historia de la que lee / escribe esshell-command-history, que está cubierta(savehist-mode). Si la solicitud se trata de mantener un historial persistente de loscomint-input-ringbuffers de shell, también puedo ayudar con eso, pero por cómo estoy interpretando la pregunta, esto lo lograría.Respuestas:
La respuesta corta es habilitar
(savehist-mode)en sus .emacs. Esto guardará todos los anillos del historial de minibúfer de forma predeterminada, que incluyeshell-command-historycuál es utilizado porM-!/(shell-command).Mientras estoy en ello, creo que también explicaré cómo cargar / guardar historiales de comandos a partir de
shell-modemensajes y otros modos que se derivan de elloscomint-mode.Nota: esto es para mi configuración con bash y OSX, pero las entrañas de esto deberían funcionar en la mayoría de los entornos.
Primero debe copiar su historial de bash shell en el entorno de su emacs. Por defecto, esto se almacena en una variable llamada "HISTFILE". Hago esto con el
(exec-path-from-shell)paquete así:Luego debe llamar
(turn-on-comint-history)a sus ganchos de modo apropiados, es decirPara los modos ruby interactivos, puede ver que estoy usando un
.pry_historyarchivo local por proyecto.Luego, debe asegurarse de guardar sus archivos de historial de comics cuando elimine buffers y emacs:
Tenga en cuenta que estoy usando
dash.elpara el(--each)formato sucinto .Esto hará que el historial de comandos del shell de minibúfer sea persistente, así como el historial de comandos de bash prompt entre emacs y otros términos.
fuente
Estoy seguro de que
savehistpuede manejar esto, aquí está mi configuración:fuente
Creo que se puede aconsejar
shell-commandpara salvar la historia y volver a asignar algunas asociaciones de teclas relacionadas, por ejemplo,M-n/ppor la invocación de esa historia, o incluso escribir su propiashell-commandmediante el usoread-from-minibuffersi te gusta.fuente