¿Cómo puedo personalizar el uso de comillas simples para cotizaciones?

7

¿Es posible enseñar a personalizar para guardar sus variables usando comillas simples en 'lugar de quote?

Ejemplo:

…
'(package-archives '(("gnu"   . "http://elpa.gnu.org/packages/")
                     ("melpa" . "http://melpa.org/packages/")))
…

en vez de:

…
'(package-archives (quote (("gnu"   . "http://elpa.gnu.org/packages/")
                           ("melpa" . "http://melpa.org/packages/"))))
…
Mattias Bengtsson
fuente

Respuestas:

11

Si los objetos Lisp se imprimen usando 'y si #'está controlado por print-quoted.

Consulte la sección Variables de salida del manual Emacs Lisp.

Entonces,

(advice-add 'custom-save-all :around
            (lambda (orig)
              (let ((print-quoted t))
                (funcall orig))))

le dice a personalizar que use en 'lugar de (quote ...)y en #'lugar de (function ...).

Constantina
fuente
¡Muchas gracias! Eso realmente frotó mi TOC de la manera correcta. : D
Mattias Bengtsson
1

Si necesita compatibilidad con Emacs anteriores a 24.4, esto también funcionará:

(defadvice custom-save-all (around custom-save-all-around)
  "Use abbreviated quotes for customize."
  (let ((print-quoted t))
    ad-do-it))

Referencia

Mattias Bengtsson
fuente