Algumas pessoas podem pensar que é mais simples de usar setq
. Algumas pessoas podem pensar que é mais lispy. Na realidade, é ingênuo no caso geral.
É verdade que, para algumas opções de usuário, isso não importa. Mas para outros, isso importa, e setq
é a abordagem errada para essas opções. Então, como regra geral, setq
é a abordagem errada.
Se você usar custom-set-variables
ou em customize-set-variable
vez de setq
, ou se você usar a interface do usuário Personalizar (por exemplo M-x customize-option
), terá certeza de que qualquer código de inicialização ou atualização pretendido necessário para o valor da opção será automaticamente acionado e executado conforme necessário. Se você usar setq
, isso não será feito.
Agora, também é o caso de a maioria das opções de usuário, especialmente muitas escritas para bibliotecas de terceiros, não fazem uso das defcustom
palavras - chave :set
e :initialize
, e o uso setq
não importa para elas. Mas muitas opções de baunilha do Emacs usam essas palavras-chave e, para aquelas que o fazem, setq
não é a coisa certa. Portanto, se você deseja usar o código Lisp e não a interface do usuário Personalizar para definir suas opções, é melhor usar custom-set-variables
ou em customize-set-variable
vez de setq
. Nunca dói e às vezes ajuda (muito).
Mas o que eu recomendo é fazer as duas coisas:
Use a interface do usuário Personalizar em vez de escrever o código Lisp para isso.
Defina a variávelcustom-file
, para que o Customize grave personalizações nesse arquivo e não no seu arquivo init ( ~/.emacs
). IOW, mantenha seu código de inicialização escrito à mão separado do código automático escrito por Customize.