我在 elisp 中创建了以下宏。仅当变量未绑定(bind)时,它才会将值“val”设置为变量“var”。这是存在的,因此在您的 .emacs 文件中设置的变量不会在其他地方被践踏。
(defmacro set-ifunbound (var val)
`(if (not (boundp ',var))
(setq ,var ,val)
(identity ,var)))
当然,这必须是一种常见的模式。是否有内置的方法来做同样的事情?
最佳答案
defvar
正是这样做的。它仅在变量未绑定(bind)时为其赋值。
关于emacs - 是否有内置的 Emacs Lisp 表单仅在未绑定(bind)时设置变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7301113/