Quelle est la différence entre setq et set-variable dans emacs lisp. Quand devrais-je utiliser setq et quand devrais-je définir-variable.Quelle est la différence entre setq et set-variable dans emacs?
Répondre
set-variable
est une commande interactive, ce qui signifie que vous pouvez taper M-x ensemble variable RET être invité de manière interactive pour un nom et une valeur variable. setq
n'est pas une commande interactive, ce qui signifie qu'elle ne convient que pour l'écriture dans le code Lisp d'Emacs. Personnellement, je n'utilise jamais set-variable
dans mon code Lisp, seulement interactivement, quand je veux donner une valeur à une variable qui a un effet immédiat sur mon édition de texte, comme (par exemple) indent-tabs-mode
à t
ou nil
.
Une autre différence est que setq
peut définir plusieurs variables à la fois. Par exemple, dans mon fichier .emacs sur OS X Je:
(setq mac-command-modifier 'meta
mac-option-modifier 'super)
set-variable
ne peut pas le faire.
setq
est special form, tandis que set-variable
est une fonction interactive.
De the docs:
Pour moi, la principale utilisation de la commande
set-variable
est de proposer les variables que je pourrais vouloir mettre en mon dossier.emacs
. Il y a maintenant plus de que de telles variables - beaucoup trop à mémoriser. Heureusement, vous pouvez appuyer sur<TAB>
après avoir appelé la commandeM-x set-variable
pour voir la liste des variables .
Outre ce qui a été dit ci-dessus, pour set-variable
, comme la chaîne de doc dit:
VARIABLE should be a user option variable name, a Lisp variable meant to be customized by users.
setq
applique à toute variable, que ce soit ou non est une option utilisateur.