Wenn ich shell-command
in einer neuen Sitzung starte, habe ich keinen Zugriff auf den Befehlsverlauf der letzten Sitzung. Wie kann ich das haben?
shell-command
session
RasmusWL
quelle
quelle
(savehist-mode)
aktiviertM-!
, ist die Verlaufsvariable, aus der gelesen / geschrieben wirdshell-command-history
, die mit abgedeckt wird(savehist-mode)
. Wenn es bei der Anfrage darum geht, eine persistente Historie dercomint-input-ring
In-Shell-Puffer zu führen, kann ich auch dabei behilflich sein, aber wenn ich die Frage interpretiere, würde dies dies erreichen.Antworten:
Die kurze Antwort lautet "enable"
(savehist-mode)
in Ihren .emacs. Dadurch werden standardmäßig alle Minibuffer-Verlaufsringe gespeichert, einschließlichshell-command-history
der vonM-!
/ verwendeten(shell-command)
.Während ich gerade dabei bin, werde ich auch erklären, wie Befehlsverläufe aus
shell-mode
Eingabeaufforderungen und anderen Modi, die sich daraus ableiten , geladen / gespeichert werdencomint-mode
.Hinweis: Dies gilt für mein Setup mit Bash und OSX, aber der Mut dazu sollte in den meisten Umgebungen funktionieren.
Zuerst müssen Sie Ihren Bash-Shell-Verlauf in die Umgebung Ihres Emacs kopieren. Standardmäßig wird dies in einer Variablen namens "HISTFILE" gespeichert. Ich mache das mit dem
(exec-path-from-shell)
Paket so:Dann müssen Sie
(turn-on-comint-history)
in Ihrem entsprechenden Modus Hooks aufrufen , dhBei interaktiven Ruby-Modi wird angezeigt, dass ich eine lokale
.pry_history
Datei pro Projekt verwende.Dann müssen Sie sicherstellen, dass Sie Ihre Comint-Verlaufsdateien speichern, wenn Sie Puffer und Emacs löschen:
Hinweis Ich verwende
dash.el
für die prägnante(--each)
Formatierung.Dadurch wird der Verlauf Ihres Befehls in der Minibuffer-Shell sowie der Befehlsverlauf Ihrer Bash-Eingabeaufforderung zwischen Emacs und anderen Begriffen dauerhaft.
quelle
Ich bin mir sicher, dass
savehist
dies gelingen kann. Hier ist mein Setup:quelle
Ich denke, Sie können raten, den Verlauf
shell-command
zu speichern und einige verwandte Tastenkombinationen neu zuzuordnen, z. B.M-n/p
um diesen Verlauf aufzurufen, oder sogar Ihren eigenen zu schreibenshell-command
,read-from-minibuffer
wenn Sie möchten .quelle