P: Usando o Elisp, como posso redefinir uma variável para seu valor padrão sem saber qual é esse valor?
Tentei descobrir como fazer isso, exibindo a interface Customize para uma variável que eu defini como um valor não padrão no meu arquivo init e pressionando C-h kseguido de um clique no botão "Revert ...". Isso trouxe a documentação para widget-button-click
, o que obviamente não ajudou muito. (Da mesma forma, C-h k RETcom apontar no botão mostra ajuda Custom-newline
, o que também não é o que estou procurando.)
Respostas:
C-hig
(elisp) Variable Definitions
Conseqüentemente:
Observe que isso se aplica apenas a
defcustom
variáveis (ou seja, "opções do usuário"). O Emacs não salva o valor inicial de umadefvar
variável em nenhum lugar.fonte
(setq foo (eval (car (get 'foo 'standard-value))))
A forma valor padrão gerado pordefcustom
um formulário com um funcall e um fecho (isto é, possivelmente, a acontecer somente quando lexical ligação é ativada)setq-default
e nãosetq
neste caso.Outra maneira, provavelmente mais limpa, de redefinir o valor de uma variável:
Então, por exemplo:
substituirá o valor anterior pelo símbolo
standard-value
.EDITAR
Leia o comentário @phils abaixo para obter detalhes muito importantes sobre essa função.
fonte
saved-value
, não para elestandard-value
.