Guardo el kill-ringuso del savehistpaquete. savehistguarda el anillo de matar con propiedades de texto intactas.
Lamentablemente, esto es un problema.
Tengo una configuración de emacs bastante grande, y utilizo mucho resaltado. Aquí está el primer elemento de mikill-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))))
En esencia, las propiedades de texto aumentan ~/.emacs.d/savehisten casi un factor de 100. Estoy viendo ~ 30MB de anillo de matar. Esto es malo por todo tipo de razones. No menos importante porque hace que emacs sea muy lento.
¿Cómo puedo decir savehistque kill-ringelimine las propiedades de texto de antes de guardar, sin eliminar las propiedades de la sesión actual?
fuente

savehist-save-hook?savehist-savemanualmente, puede agregar la función para "despropertizar" cadenas ensavehist-save-hooklugar dekill-emacs-hook. Pero si desea conservar la opción de llamarsavehist-savedurante una sesión de edición sin perder las propiedades de texto de las entradas recientes de kill ring,kill-emacs-hookes una mejor opción.Una solución simple es usar
savehist-20.el.Es una versión
savehist.elque funciona con todas las versiones de Emacs (20+). Despoja automáticamente los elementos del historial de las propiedades, y no guarda variables ensavehist-additional-variablescuyos valores son cadenas de propiedad.En otras palabras, puede leer el archivo que guarda incluso en una versión de Emacs (por ejemplo, 20) que irrita las cadenas de propiedad.
fuente
kill-ringson propiedad, por lo que parece que esto eliminaría lakill-ringventa al por mayor.