Certaines personnes pourraient penser que c'est plus simple à utiliser setq
. Certaines personnes pourraient penser que c'est plus lispy. En réalité, il est naïf dans le cas général.
Il est vrai que pour certaines options d'utilisateur, cela n'a pas d'importance. Mais pour d'autres, c'est important, et setq
c'est la mauvaise approche pour ces options. Donc, en règle générale, setq
la mauvaise approche est.
Si vous utilisez custom-set-variables
ou customize-set-variable
au lieu de setq
, ou si vous utilisez l'interface utilisateur Personnaliser (par exemple M-x customize-option
), vous êtes sûr que tout code d'initialisation ou de mise à jour prévu nécessaire pour la valeur d'option sera automatiquement déclenché et exécuté selon les besoins. Si vous utilisez setq
, cela ne sera pas fait.
Maintenant, il est également vrai que la plupart des options de l' utilisateur, en particulier un grand nombre d'entre eux écrit pour les bibliothèques 3e partie, ne font pas usage des defcustom
mots - clés :set
et :initialize
, à l' aide et setq
n'a pas d' importance pour eux. Mais beaucoup d’options de la vanille Emacs utilisent de tels mots-clés, et pour ceux qui le font, ce setq
n’est pas la bonne chose. Donc, si vous souhaitez utiliser le code Lisp et non l'interface de personnalisation pour définir vos options, il est préférable d'utiliser custom-set-variables
ou de customize-set-variable
remplacer setq
. Ça ne fait jamais de mal et ça aide parfois (beaucoup).
Mais ce que je recommande, c'est de faire les deux choses suivantes:
Utilisez l'interface utilisateur Personnaliser au lieu d'écrire du code Lisp pour cela.
Définissez la variablecustom-file
, de sorte que Personnaliser écrit les personnalisations dans ce fichier et non dans votre fichier init ( ~/.emacs
). IOW, gardez votre code d'initialisation écrit à la main séparé du code automatique écrit par Customize.