2013-07-04 14 views
8

Jeśli wyświetlę interfejs dostosowywania emacsa, edytuję zmienną, a następnie ustawię + zapisz ją, jej nowa wartość zostanie zapisana na liście (custom-set-variables ...) w moim pliku init.Zapisz "zmienne zestawu niestandardowego" za pomocą elisp

Teraz, powiedzmy, zmodyfikowałem wartość zmiennej w elispie (używając (setq ...) lub czegoś innego).

Jak zapisać tę nową wartość na liście przy użyciu elisp zamiast interaktywnego interfejsu?

+0

Wiem, że mogę po prostu napisać komendę '(setq' do mojego pliku init, ale to nie jest to, czego szukam.Muszę zautomatyzowaną metodę do zapisania zmiennej.Nieustannie używam automatycznej metody zapisywania zmiennej – Malabarba

+0

Domyślnym zachowaniem jest brak listy zmiennych zdefiniowanych z 'setq' przy zapisywaniu zmiennych użytkownika z interfejsem użytkownika, a te zmienne' setq' nie mogą być generalnie nadpisywane przez interfejs użytkownika. Dla zmiennych ustawionych ręcznie, które zostaną zapisane z interfejsem użytkownika, używaj tego samego formatu w kodzie elipsu - tj. tego samego formatu, jaki widzisz po zapisaniu w interfejsie użytkownika. Krótko mówiąc, jeśli użyłeś 'setq' - nie możesz tam dotrzeć stąd - chyba że użyjesz nowego. setq', który ładuje po wcześniejszym 'setq', skutecznie redefiniując go. – lawlist

+0

Magia pojawia się za pomocą' .../lisp/cus-edit.el' i '.../lisp/custom.el' – lawlist

Odpowiedz

0

Wartość `niestandardowym pliku mówi, gdzie przechowywane są modyfikacje. To zwykły Emacs Lisp, e.i. plik tekstowy. Możesz zmieniać wartości tam z dowolnego programu, tworząc komendę elisp lub zmieniając ją z zewnątrz przez sed, perl, python, tryb wsadowy emacs itd.

+0

To prawda, ale musiało być coś łatwiejszego (i mniej ryzykownego) niż ręczne parsowanie pliku niestandardowego. – Malabarba