2013-07-04 11 views
8

Wenn ich die Anpassungsschnittstelle von Emacs öffne, eine Variable bearbeite und dann + setze, wird der neue Wert in einer (custom-set-variables ...) Liste in meiner init-Datei gespeichert."custom-set-variables" mit elisp speichern

Nun, sagen wir, ich habe den Wert einer Variablen in elisp geändert (mit (setq ...) oder etwas anderes).

Wie kann ich diesen neuen Wert in der (custom-set-variables ...) Liste mit elisp anstelle der interaktiven Schnittstelle speichern?

+0

Ich weiß, ich kann einfach '' Setq' Befehl in meine Init-Datei schreiben, aber das ist nicht das, was ich suche. Ich brauche eine automatisierte Methode zum Speichern der Variablen. – Malabarba

+0

Das Standardverhalten ist nicht Variablen definiert mit 'setq' beim Speichern von benutzerdefinierten Variablen mit der Benutzeroberfläche, und diese' setq' Variablen können nicht generell über die Benutzeroberfläche überschrieben werden.Für manuell eingestellte Variablen, die mit der Benutzeroberfläche gespeichert werden, müssten Sie tatsächlich benutze das selbe format in deinem elisp code - also das selbe format, das du nach dem speichern mit der benutzeroberfläche siehst. Lange Rede, kurzer blick, wenn du 'setq' benutzt hast - du kannst nicht von hier kommen - es sei denn du benutzt ein neues' ' Setq', das nach dem vorherigen 'setq' lädt, um es effektiv neu zu definieren – lawlist

+0

Die Magie tritt mit' .../lisp/cus-edit.el' und '.../lisp/custom.el' auf – lawlist

Antwort

7

Sieht aus wie Sie für customize-save-variable

0

Der Wert von `custom-file‘ suchen sagt, wo Ihre Anpassungen gespeichert werden. Es ist ein einfacher Emacs Lisp, e.i. Textdatei. Sie können die Werte dort von irgendeinem Programm ändern, einen elisp Befehl verursachen oder es von draußen über sed, perl, python, emacs-Stapelmodus etc. ändern.

+0

Wahr, aber es musste etwas einfacher (und weniger riskant) sein, als die benutzerdefinierte Datei manuell zu analysieren. – Malabarba