0
如何在另一个缓冲区中处理缓冲区局部变量?我以为我可以用let绑定它,但是在将变量传递给另一个使用symbol-value
的函数时遇到问题。这里是一个小例子,在另一个缓冲区中使用缓冲区局部变量的值
(defvar-local local-var nil)
(setq local-var "a")
(defun fun()
(let ((local-var local-var))
(with-temp-buffer
(format-fun 'local-var)
(message (buffer-string)))))
(defun format-fun (name)
(insert (symbol-value name)))
我如何可以绑定在fun
local-var
所以format-fun
可以在另一个缓冲区处理它?
我想我的功能,它工作得很好。我使用的是Emacs 22,所以它没有'defvar-local',但是我用'make-local-variable'做了。 – Barmar
我看不出你的解决方案如何提供帮助。绑定相同的变量两次只会隐藏第一个绑定。 – Barmar
我需要更改'format-fun',因为'(insert(symbol-value name))'如果值为'nil'则会出错。我把它改成了'(insert(format'%s“(symbol-value name)))' – Barmar