在Emacs中添加几个函数作为挂钩
如何简化在Emacs中添加几个函数作为挂钩,emacs,elisp,dot-emacs,Emacs,Elisp,Dot Emacs,如何简化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) 我还有其他几行类似的代码,包括一些lambda函数添加到org mode hook…我个人强烈
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)
我还有其他几行类似的代码,包括一些lambda函数添加到
org mode hook
…我个人强烈建议不要将lambda
函数添加到hook。主要原因是,如果更改内容并重新计算addhook
表达式,则钩子同时包含旧的和新的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)
旁注:您可以使用
全局自动恢复模式
在所有缓冲区上启用自动恢复,这样您就不必在所有主要模式下都启用它。我使用一个简单的dolist
:
(dolist (fn '(turn-on-auto-revert-mode
turn-on-org-cdlatex
smartparens-mode
abbrev-mode))
(add-hook 'org-mode-hook fn))
这样,您仍然可以在以后使用remove hook
或从自定义界面删除各个钩子