Ich mache oft so etwas wie:
Cx b foobarbaz RET
Um einen neuen Puffer für Notizen usw. zu erhalten, würde ich es lieben, wenn Emacs nur einen Schnappschuss machen und gelegentlich alle offenen Puffer auf die Festplatte kopieren. Es gibt viele Dokumentationen zur Verbesserung der Funktionen zum automatischen Speichern und Sichern, aber alle beziehen sich auf Puffer, die gerade eine Datei besuchen.
Ich möchte, dass Emacs regelmäßig ALLE Puffer auf der Festplatte speichern. Dies wird sicherlich dazu führen, dass einige rauschige Ausgabepuffer auf die Festplatte geschrieben werden, aber wen interessiert das? Speicherplatz ist billig.
Ist dafür etwas eingebaut? Im Moment, wenn mein Computer (oder Emacs) abstürzt, verliere ich oft viele Notizen, die ich in verschiedenen Puffern aufgenommen habe.
save-some-buffers
hat eine Option für Puffer, die keine Dateien besuchen - vielleicht können Sie diese mit einem Timer und einer benutzerdefinierten Funktion verbinden, diesave-some-buffers
als Argument akzeptiert wird - siehe Dokumentzeichenfolge. Es gibt wahrscheinlich bereits etwas, das dies tut - z. B. Google"save-some-buffers" auto save
usw.; und finden Sie die Funktionauto-save-mode
insimple.el
für einige Ideen. Ichdeft
Paket vorschlagen .Antworten:
Dies beantwortet Ihre gestellte Frage nicht. Sie können sie also ignorieren oder ablehnen.
Ich bezweifle, dass Emacs wirklich alle Puffer auf der Festplatte speichern soll, einschließlich aller internen, normalerweise unsichtbaren Puffer. Warum willst du das?
Es geht nicht um den Speicherplatz. Es geht um den Lärm. Möchten Sie wirklich Dinge aus einem Verzeichnis herausholen, in dem Ihre wichtigen Dateien möglicherweise mit solchen Dingen gemischt sind? Oder möchten Sie gelegentlich Perlen in einem temporären Verzeichnis fischen (dessen Zweck es ist, Lärm zu verstauen)?
Puffer mit Namen wie
*...*
(nicht beginnend mit einem Leerzeichen) werden normalerweise nur ausgegeben (z. B.*info*
) oder für temporäre Interaktionen (z*scratch*
. B. ). Für solche Puffer würde ich empfehlen, die Dinge so zu lassen, wie sie sind. Sie können einen solchen Puffer jederzeit bei Bedarf speichernC-x C-w
, wenn Sie dies wirklich benötigen.Was mich zu dem bringt, was ich vermute, ist Ihr wirklicher Anwendungsfall: " Puffer [s] zum Notieren usw. ". Die Antwort hier ist,
C-x C-f
statt zu verwendenC-x b
. IOW, ja, besuchen Sie sie als Dateipuffer. Wenn Sie den Puffer nie speichern, wird keine Datei erstellt - außer einer automatisch gespeicherten Datei , die wahrscheinlich genau das ist, was Sie wollen und brauchen.Wenn Sie einen Puffer als Dateipuffer aufrufen, steuern Sie automatisch, welcher Hauptmodus standardmäßig verwendet wird (using
auto-mode-alist
). Dies ist für das Notieren genauso wichtig wie für das Programmieren von Code.Insbesondere würde ich vorschlagen, dass Sie
*scratch*
es sich möglicherweise noch einmal überlegen , wenn Sie es für die temporäre Lisp-Interaktion verwenden. Viele Benutzer (einschließlich mir) haben festgestellt, dass es hilfreich ist, stattdessenC-x C-f foo.el
(oder einen anderen*.el
Dateinamen) zu verwenden. Ein Grund ist, dass Sie automatisch automatisch gespeicherte Dateien erhalten (und Sicherungsdateien, wenn Sie den Puffer speichern). Ein weiterer Grund ist, dass Sie den Emacs-Lisp-Modus anstelle des Lisp-Interaktionsmodus erhalten. Ein dritter Grund ist, dass Sie möglicherweise Ihre "temporäre" Arbeit speichern möchten. Und wie Sie sagen, ist Speicherplatz billig.Was ist mit # 4 im Widerspruch zu dem, was ich in # 1 gesagt habe? Sie möchten keine Dateien mit temporären Skizzen mit wichtigen Dateien mischen, und Sie möchten nicht gelegentlich Perlen aus einem Verzeichnis mit temporären Dateien fischen. Die Antwort hier ist, dass es an Ihnen liegt, die Dinge so zu organisieren, dass dieser Effekt minimiert wird. Das Arbeiten mit solchen Arbeitsdateien in einem bestimmten Verzeichnis kann hilfreich sein, ebenso wie die Verwendung einer Namenskonvention (insbesondere eines Präfixes), mit der Sie solche Dateien unterscheiden können.
Eine andere Sache, die helfen kann: Dired . Sie können Sicherungsdateien zum Löschen verwenden
~
und#
markieren und dann automatischx
löschen (und dann löschen). Wenn Sie eine Namenskonvention für Ihre vermutlich temporären Scratch-Dateien verwenden, können Sie%
alle oder ähnliche Dateien zum Löschen markieren. Sie können sogar regelmäßig eine Funktion ausführen, um solche Dateien zu bereinigen. Und Sie können ganz einfach alles umbenennen, was Sie wirklich länger behalten möchten.Mein Rat ist also, vielleicht zu überdenken, wie Sie mit solchen temporären Puffern für Notizen interagieren. Erwägen Sie die Verwendung von Dateipuffern, die automatisch gespeichert werden. In der Summe verwenden
C-x C-f foobarbaz.txt RET
(oder.el
oder was auch immer) anstelle vonC-x b foobarbaz RET
.quelle
C-x C-f
" anstelle von "In Summe verwendenC-x b
". (Ich kann keine direkte Bearbeitung vorschlagen, da diese Änderung weniger als 6 Zeichen umfasst.)