我的.emacs
中有以下代码:
(dolist (mode '(scheme emacs-lisp lisp clojure))
(add-hook
(intern (concat (symbol-name mode) "-mode-hook"))
(lambda ()
(progn
(run-programming-hook)
(message "%s" (concat (symbol-name mode) "-mode")))
显然,当lambda执行时,
mode
变量为空。问题是我如何评估mode
,使其不作为变量进入lambda,而是作为该变量中的值进入?换句话说,我希望在运行 Hook 时将消息打印出来。 最佳答案
您可以使用的是backquote:
(dolist (mode '(scheme emacs-lisp lisp clojure))
(add-hook
(intern (concat (symbol-name mode) "-mode-hook"))
`(lambda ()
(run-programming-hook)
(message "%s" ,(concat (symbol-name mode) "-mode")))))
关于emacs - 在将表达式放入lambda之前先对其求值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3265879/