是否有内置的Emacs Lisp表单,仅在变量未绑定时设置它?

是否有内置的Emacs Lisp表单,仅在变量未绑定时设置它?,emacs,elisp,Emacs,Elisp,我在elisp中创建了以下宏。仅当变量未绑定时,才会将值“val”设置为变量“var”。这是存在的,所以在.emacs文件中设置的变量不会被其他地方践踏 (defmacro set-ifunbound (var val) `(if (not (boundp ',var)) (setq ,var ,val) (identity ,var))) 当然,这必须是一个共同的模式。有没有一种内置的方法可以做同样的事情?defvar就是这样做的。它仅在变量未绑定时才为其赋值。谢

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

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

当然,这必须是一个共同的模式。有没有一种内置的方法可以做同样的事情?

defvar
就是这样做的。它仅在变量未绑定时才为其赋值。

谢谢。我想我应该读一下文档。:)