如何简化init.el
文件中的以下代码?
(add-hook 'org-mode-hook 'turn-on-auto-revert-mode)
(add-hook 'org-mode-hook 'turn-on-org-cdlatex)
(add-hook 'org-mode-hook 'smartparens-mode)
(add-hook 'org-mode-hook 'abbrev-mode)
我还有其他几行,包括添加到org-mode-hook
...
答案 0 :(得分:10)
就个人而言,我强烈建议不要将lambda
函数添加到钩子中。主要原因是,如果更改内容并重新评估add-hook
表达式,则钩子包含两者旧的和新的lambda表达式。第二个原因是当你检查一个钩子时看起来很糟糕 - 与一个大的lambda表达式相比,看一个函数名称会更好。
相反,我建议使用:
(defun my-org-mode-hook ()
(turn-on-auto-revert-mode)
(turn-on-org-cdlatex)
(smartparens-mode 1)
(abbrev-mode 1)))
(add-hook 'org-mode-hook 'my-org-mode-hook)
附注:您可以使用global-auto-revert-mode
启用所有缓冲区的自动还原功能,这样您就不必为所有主要模式启用它。
答案 1 :(得分:3)
我使用简单的dolist
:
(dolist (fn '(turn-on-auto-revert-mode
turn-on-org-cdlatex
smartparens-mode
abbrev-mode))
(add-hook 'org-mode-hook fn))
这让你仍然可以使用remove-hook
或自定义界面删除单个挂钩。