我使用以下内容为Python缓冲区启用linum-mode
:
(defun my-python-mode-hook ()
(linum-mode 1))
(add-hook 'python-mode-hook 'my-python-mode-hook)
然而,我对钩子的理解仍然非常有限。据我所知,上面的代码将函数添加到python-mode-hook
,所以我假设这个钩子已经定义了已经,甚至可能在其中有一些代码已经。有了这个:
答案 0 :(得分:4)
(1)Emacs没有自动定义次模式挂钩,但您可以使用:after-hook
关键字定义一个(根据defining minor mode的手册页)。 ( UPDATE :根据Legoscia的最后评论,从emacs版本24.3.90开始自动定义次模式挂钩。谢谢,Legoscia!)
(2)钩子只是变量,所以你可以像检查任何其他变量一样检查它们(例如C-h v
或M-x describe-variable RET some-hook
)。
(3)您可以使用add-hook
和remove-hook
更改挂钩的元素(请参阅setting hooks上的手册),例如:
(add-hook 'python-mode-hook 'my-python-mode-hook)
(remove-hook 'python-mode-hook 'my-python-mode-hook)
(顺便说一下,最好在钩子而不是匿名lambda
中使用命名函数,因为你可以在命名函数上使用remove-hook
。)