2013-07-04 11 views
8

Se visualizzo l'interfaccia di personalizzazione di emacs, modifica una variabile, quindi imposta + salva, il suo nuovo valore viene memorizzato in un elenco (custom-set-variables ...) nel mio file di init.Salva "custom-set-variables" con elisp

Ora, diciamo che ho modificato il valore di una variabile in elisp (utilizzando (setq ...) o altro).

Come posso salvare questo nuovo valore nell'elenco (custom-set-variables ...)utilizzando l'interfaccia utente anziché l'interfaccia interattiva?

+0

So che posso solo scrivere il comando '(setq' al mio file init, ma questo non è quello che sto cercando.Ho bisogno di un metodo automatico per salvare la variabile. – Malabarba

+0

Il comportamento predefinito è di non elencare le variabili definite con 'setq' quando si salvano le variabili personalizzate con l'interfaccia utente, e quelle variabili' setq' in genere non possono essere sovrascritte attraverso l'interfaccia utente.Per le variabili impostate manualmente che verranno salvate con l'interfaccia utente, sarà effettivamente necessario usa lo stesso formato all'interno del tuo codice elisp - cioè, lo stesso formato che vedi dopo aver salvato con l'interfaccia utente. Per farla breve, se hai usato 'setq' - non puoi arrivarci da qui - a meno che non usi un nuovo' setq' che carica dopo il precedente 'setq' efficacemente ridefinendolo – lawlist

+0

La magia sta avvenendo con' .../lisp/cus-edit.el' e '.../lisp/custom.el' – lawlist

risposta

7

Sembra che siete alla ricerca di customize-save-variable

0

Il valore di `-file personalizzato', dice in cui le personalizzazioni vengono memorizzati. È un semplice Emacs Lisp, e.i. file di testo. È possibile modificare i valori da qualsiasi programma, creando un comando elisp o cambiarlo dall'esterno tramite sed, perl, python, modalità emacs-batch ecc.

+0

Vero, ma doveva esserci qualcosa di più semplice (e meno rischioso) dell'analisi manuale del file personalizzato. – Malabarba