Wie kann ich die Verwendung eines einfachen Angebots für ein Angebot anpassen?

7

Ist es möglich, das Anpassen zu lehren, um seine Variablen in einfachen Anführungszeichen 'anstatt in einfachen Anführungszeichen zu speichern quote?

Beispiel:

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

anstatt:

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

Antworten:

11

Ob Lisp-Objekte mit gedruckt werden 'und von #'gesteuert werden print-quoted.

Siehe Abschnitt Ausgabevariablen im Emacs Lisp-Handbuch.

Damit,

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

weist customize an, 'anstelle von (quote ...)und #'anstelle von zu verwenden (function ...).

Konstantin
quelle
Vielen Dank! Das hat meine Zwangsstörung wirklich richtig gerieben. : D
Mattias Bengtsson
1

Wenn Sie Kompatibilität mit Emacs benötigen, die älter als 24.4 sind, reicht dies ebenfalls aus:

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

Referenz

Mattias Bengtsson
quelle