Lorsque je lance shell-command
une nouvelle session, je n'ai pas accès à l'historique des commandes de la dernière session. Comment puis-je avoir ça?
shell-command
session
RasmusWL
la source
la source
(savehist-mode)
activé?M-!
, la variable historique à partir de laquelle il lit / écrit estshell-command-history
, qui est couverte par(savehist-mode)
. Si la demande concerne la conservation d'un historique persistant descomint-input-ring
tampons dans le shell, je peux également vous aider, mais d'après la façon dont j'interprète la question, cela le fera.Réponses:
La réponse courte est activer
(savehist-mode)
dans votre .emacs. Cela sauvera tous les anneaux d'historique du mini-tampon par défaut, ce qui inclutshell-command-history
ce qui est utilisé parM-!
/(shell-command)
.Pendant que j'y suis, je pense que je vais également expliquer comment charger / enregistrer les historiques de commandes à partir des
shell-mode
invites et d'autres modes qui en dériventcomint-mode
.Remarque: c'est pour ma configuration avec bash et OSX, mais les tripes de cela devraient fonctionner dans la plupart des environnements.
Vous devez d'abord copier l'historique de votre shell bash dans l'environnement de votre emacs. Par défaut, il est stocké dans une variable appelée "HISTFILE". Je fais cela avec le
(exec-path-from-shell)
paquet comme ceci:Ensuite, vous devez appeler
(turn-on-comint-history)
dans vos hooks de mode appropriés, à savoirPour les modes rubis interactifs, vous pouvez voir que j'utilise un
.pry_history
fichier local par projet.Ensuite, vous devez vous assurer que vous enregistrez vos fichiers d'historique comint lors de la suppression des tampons et des emacs:
Remarque J'utilise
dash.el
pour la(--each)
mise en forme succincte .Cela rendra l'historique de vos commandes du mini-tampon persistant ainsi que votre historique de commandes d'invite bash entre emacs et d'autres termes.
la source
Je suis sûr que cela
savehist
peut gérer cela, voici ma configuration:la source
Je pense que vous pouvez conseiller
shell-command
de sauvegarder l'historique et de remapper certaines liaisons de touches connexes, par exempleM-n/p
, pour invoquer cette histoire, ou même écrire la vôtreshell-command
en utilisantread-from-minibuffer
si vous le souhaitez.la source