是否有内置的Emacs Lisp表单只能在未绑定的情况下设置变量?

时间:2011-09-04 17:59:04

标签: emacs elisp

我在elisp中创建了以下宏。仅当变量未绑定时,它才会将值“val”设置为变量“var”。这是存在的,因此.emacs文件中设置的变量不会被其他地方踩踏。

(defmacro set-ifunbound (var val)
  `(if (not (boundp ',var))
       (setq ,var ,val)
     (identity ,var)))

当然,这必须是一种常见的模式。是否有内置的方式做同样的事情?

1 个答案:

答案 0 :(得分:5)

defvar正是如此。只有当变量未绑定时,它才会为变量赋值。