在另一个缓冲区中使用缓冲区局部变量的值
Use value of buffer-local variable in another buffer
如何在另一个缓冲区中处理一个缓冲区局部变量?我以为我可以用 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
可以在另一个缓冲区中处理它?
用 let
绑定变量不会阻止它在切换缓冲区时被重新分配。
使用不同的变量来避免这种情况。
(defun fun ()
(let ((new-var local-var))
(with-temp-buffer
(format-fun 'new-var)
(message (buffer-string)))))
有一个 elisp 函数可以从另一个缓冲区获取 buffer-local 变量值:
(buffer-local-value 'var (get-buffer "your-buffer-name"))
如何在另一个缓冲区中处理一个缓冲区局部变量?我以为我可以用 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
可以在另一个缓冲区中处理它?
用 let
绑定变量不会阻止它在切换缓冲区时被重新分配。
使用不同的变量来避免这种情况。
(defun fun ()
(let ((new-var local-var))
(with-temp-buffer
(format-fun 'new-var)
(message (buffer-string)))))
有一个 elisp 函数可以从另一个缓冲区获取 buffer-local 变量值:
(buffer-local-value 'var (get-buffer "your-buffer-name"))