比如我有一个 test-a.el 文件
;;; test-a.el --- test. -*- lexical-binding: t -*-
(defvar test-message "hello")
(defun test-a()
(message test-message))
(provide 'test-a)
;;; test-a.el ends here
准备使用let临时修改test-message并调用test-a
(progn
(autoload 'test-a (expand-file-name "test-a" user-emacs-directory))
;; (defvar test-message)
(let ((test-message "world"))
(test-a))
(test-a))
除非手动(require 'test-a)
或者let前先使用(defvar test-message)
, 否则会抛出错误(error "Defining as dynamic an already lexical var")
,有大佬知道这是啥情况吗,有没有更好的方式解决?