Ich speichere das kill-ring
mit dem savehist
Paket. savehist
Speichert den Kill Ring mit intakten Texteigenschaften.
Dies ist leider ein Problem.
Ich habe eine ziemlich große Emacs-Konfiguration und verwende viel Hervorheben. Hier ist das erste Element von mirkill-ring
#("avehist-printable value)\n (prin1 `(setq ,symbol ',value) (current-buffer))\n (insert ?\\n))))))\n ;; If autosaving, avoid writing if nothing has changed since the\n ;; last write." 0 23 (fontified t wrap-prefix #(" " 0 5 (fontified t))) 23 24 (fontified t face (rainbow-delimiters-depth-8-face) wrap-prefix #(" " 0 5 (fontified t))) 24 25 (fontified t wrap-prefix #(" " 0 5 (fontified t))) 25 32 (fontified t wrap-prefix #(" " 0 7 (fontified t))) 32 33 (fontified t face (rainbow-delimiters-depth-8-face) wrap-prefix #(" " 0 7 (fontified t))) 33 40 (fontified t wrap-prefix #(" " 0 7 (fontified t))) 40 41 (fontified t face (rainbow-delimiters-depth-9-face) wrap-prefix #(" " 0 7 (fontified t))) 41 61 (fontified t wrap-prefix #(" " 0 7 (fontified t))) 61 62 (fontified t face (rainbow-delimiters-depth-9-face) wrap-prefix #(" " 0 7 (fontified t))) 62 63 (fontified t wrap-prefix #(" " 0 7 (fontified t))) 63 64 (fontified t face (rainbow-delimiters-depth-9-face) wrap-prefix #(" " 0 7 (fontified t))) 64 78 (fontified t wrap-prefix #(" " 0 7 (fontified t))) 78 79 (fontified t face (rainbow-delimiters-depth-9-face) wrap-prefix #(" " 0 7 (fontified t))) 79 80 (fontified t face (rainbow-delimiters-depth-8-face) wrap-prefix #(" " 0 7 (fontified t))) 80 81 (fontified t wrap-prefix #(" " 0 7 (fontified t))) 81 88 (fontified t wrap-prefix #(" " 0 7 (fontified t))) 88 89 (fontified t face (rainbow-delimiters-depth-8-face) wrap-prefix #(" " 0 7 (fontified t))) 89 99 (fontified t wrap-prefix #(" " 0 7 (fontified t))) 99 100 (fontified t face (rainbow-delimiters-depth-8-face) wrap-prefix #(" " 0 7 (fontified t))) 100 101 (fontified t face (rainbow-delimiters-depth-7-face) wrap-prefix #(" " 0 7 (fontified t))) 101 102 (fontified t face (rainbow-delimiters-depth-6-face) wrap-prefix #(" " 0 7 (fontified t))) 102 103 (fontified t face (rainbow-delimiters-depth-5-face) wrap-prefix #(" " 0 7 (fontified t))) 103 104 (fontified t face (rainbow-delimiters-depth-4-face) wrap-prefix #(" " 0 7 (fontified t))) 104 105 (fontified t face (rainbow-delimiters-depth-3-face) wrap-prefix #(" " 0 7 (fontified t))) 105 106 (fontified t wrap-prefix #(" " 0 7 (fontified t))) 106 110 (fontified t wrap-prefix #(" ;; " 0 4 (fontified t) 4 7 (fontified t face font-lock-comment-delimiter-face))) 110 113 (fontified t face font-lock-comment-delimiter-face wrap-prefix #(" ;; " 0 4 (fontified t) 4 7 (fontified t face font-lock-comment-delimiter-face))) 113 175 (fontified t face font-lock-comment-face wrap-prefix #(" ;; " 0 4 (fontified t) 4 7 (fontified t face font-lock-comment-delimiter-face))) 175 179 (fontified t wrap-prefix #(" ;; " 0 4 (fontified t) 4 7 (fontified t face font-lock-comment-delimiter-face))) 179 182 (fontified t face font-lock-comment-delimiter-face wrap-prefix #(" ;; " 0 4 (fontified t) 4 7 (fontified t face font-lock-comment-delimiter-face))) 182 193 (fontified t face font-lock-comment-face wrap-prefix #(" ;; " 0 4 (fontified t) 4 7 (fontified t face font-lock-comment-delimiter-face))))
Im Wesentlichen ~/.emacs.d/savehist
blähen sich die Texteigenschaften um fast den Faktor 100 auf. Ich betrachte ~ 30 MB Kill Ring. Das ist aus allen möglichen Gründen schlecht. Nicht zuletzt, weil es Emacs sehr langsam macht.
Wie kann ich feststellen savehist
, dass Texteigenschaften kill-ring
vor dem Speichern entfernt werden sollen, ohne die Eigenschaften für die aktuelle Sitzung zu löschen?
quelle
savehist-save-hook
?savehist-save
manuell aufrufen , können Siesavehist-save-hook
anstelle von die Funktion zum "Aufheben der Propertierung" hinzufügenkill-emacs-hook
. Wenn Sie jedoch die Option beibehalten möchten,savehist-save
während einer Bearbeitungssitzung aufzurufen, ohne die Texteigenschaften der letzten Kill-Ring-Einträge zu verlieren,kill-emacs-hook
ist dies die bessere Wahl.Eine einfache Lösung ist die Verwendung
savehist-20.el
.Es ist eine Version davon
savehist.el
, die mit allen Emacs-Versionen (20+) funktioniert. Es entfernt automatisch Verlaufselemente von Eigenschaften und speichert keine Variablen, insavehist-additional-variables
deren Werten sich Zeichenfolgen befinden.Mit anderen Worten, Sie können die gespeicherte Datei auch in einer Emacs-Version (z. B. 20) lesen, die auf Eigenschaften von Zeichenfolgen steht.
quelle
kill-ring
Eigentum, so dass es so klingt, als würde dies denkill-ring
Großhandel wegwerfen .