首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ELisp: cl-循环用于“符号作为变量的值为空”

ELisp: cl-循环用于“符号作为变量的值为空”
EN

Stack Overflow用户
提问于 2014-01-01 17:10:56
回答 1查看 554关注 0票数 1

我试图使用(cl-loop for ..)循环一对列表,但是当代码在启动时(和使用eval-buffer)执行时,我一直得到“符号的值作为变量是无效的:模式”,而不是在使用eval-region对其进行计算时。

代码语言:javascript
复制
;; 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))

我该怎么解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-01 17:17:41

您的数据结构对于任务来说并不是最优的,也就是说,检查哪个文件对应于哪个模式是麻烦的。用这个代替:

代码语言:javascript
复制
(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))) 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20871056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档