我是 ELisp 的新手,我无法设置变量值以便稍后访问。我读了the documentation on accessing variable values并尝试了 this thread 中的答案,但我仍然收到 Wrong type argument: char-or-string-p
。
这是我的 *scratch*
Emacs 缓冲区的输出,它运行代码并在出现任何副作用后将其插入:
(defvar my-var "var" "Some documentation")
my-var
my-var
"var"
(symbol-value 'my-var)
"var"
我可以迭代一个由值作为文字的列表:
(dolist (v '("var"))
(insert v))
varnil
但是每一次将值作为变量迭代的尝试都失败了,并出现相同的错误 Wrong type argument: char-or-string-p
:
(dolist (v '(my-var))
(insert v))
(dolist (v '((format "%S" my-var)))
(insert v))
(dolist (v '((symbol-value 'my-var)))
(insert v))
如何迭代由变量值组成的列表?
最佳答案
您需要评估您的变量:
(dolist (v (list my-var))
(insert v))
或者自己获取值:
(dolist (v (list 'my-var))
(insert (symbol-value v)))
如果你想混合变量和文字,那么使用第一种方法:
(defvar my-var "var" "Some documentation")
(dolist (d (list my-var
"other-var"))
(insert d))
关于variables - 如何访问列表中变量的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58116376/