我试图使用(cl-loop for ..)循环一对列表,但是当代码在启动时(和使用eval-buffer)执行时,我一直得到“符号的值作为变量是无效的:模式”,而不是在使用eval-region对其进行计算时。
;; clean up the modeline
(require 'diminish)
(defmacro diminish-after-load (file mode)
"After loading FILE, execute `diminish' on MODE."
`(eval-after-load ,file '(diminish ,mode)))
(require 'cl-lib)
(cl-loop for file in '("eldoc" "rainbow-mode" "hideshow" "flyspell"
"undo-tree" "whitespace" "smartparens" "auto-complete")
for mode in '(eldoc-mode rainbow-mode hs-minor-mode
flyspell-mode undo-tree-mode whitespace-mode
smartparens-mode auto-complete-mode)
do (diminish-after-load file mode))我该怎么解决这个问题?
发布于 2014-01-01 17:17:41
您的数据结构对于任务来说并不是最优的,也就是说,检查哪个文件对应于哪个模式是麻烦的。用这个代替:
(mapc
(lambda (x)
(diminish-after-load (car x) (cdr x)))
'(("eldoc" . eldoc-mode) ("rainbow-mode" . rainbow-mode)
("hideshow" . hs-minor-mode) ("flyspell" . flyspell-mode)
("undo-tree" . undo-tree-mode) ("whitespace" . whitespace-mode)
("smartparens" . smartparens-mode) ("auto-complete" . auto-complete-mode))) https://stackoverflow.com/questions/20871056
复制相似问题