2011-09-04 82 views
5

我在elisp中创建了以下宏。只有当变量未被绑定时,才会将值“val”设置为变量“var”。这存在,因此.emacs文件中设置的变量不会在其他地方被践踏。是否有一个内置的Emacs Lisp表单来设置一个变量,如果它是未绑定的?

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

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

回答

5

defvar确实如此。只有在未绑定的情况下,它才会为变量赋值。

+1

谢谢。猜猜我应该阅读文档。 :) http://www.gnu.org/s/emacs/manual/html_node/elisp/Defining-Variables.html –

相关问题