在评估以下函数时,我得到“符号作为变量的值为空:s”
(defun str-to-sym () (interactive)
(sx (kill-sexp 1)
(let ((s (read (car kill-ring))))
(insert (downcase (reps s " " "-"))))
))
sx 是 save-excursion 的别名。
评估以下内容
(let ((s (read (car kill-ring))))
(message "!!: %s" s))
=> !!: quote''
但我认为,在函数 str-to-sym 之外评估本质上相同的构造是可行的。
发生什么事了??
问题可能重复。
但你的问题是,你将
s
引用为 (insert (downcase (reps s " " "-")))
中的变量,但你没有将 s
绑定为变量(例如,使用 let
)或为其分配任何值(例如,使用 setq
)
)。
您将
sx
绑定为变量,但您尝试评估变量 s
。打字错误?