2010-11-29 35 views

Répondre

24

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.

10

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 commande M-x set-variable pour voir la liste des variables .

3

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.