set-variable
- это интерактивная команда, означающая, что вы можете набрать Mx set-variable RET для интерактивного запроса имени и значения переменной.setq
не является интерактивной командой, это означает, что она подходит только для написания кода в Emacs Lisp.Лично я никогда не использую set-variable
в своем коде на Лиспе, только в интерактивном режиме, когда я хочу присвоить значение переменной, которая оказывает непосредственное влияние на мое редактирование текста, например (например) установка indent-tabs-mode
в t
или nil
.
Другое отличие состоит в том, что setq
может устанавливать несколько переменных одновременно.Например, в моем файле .emacs на OS X я имею:
(setq mac-command-modifier 'meta
mac-option-modifier 'super)
set-variable
не может этого сделать.