我使用以下代码来启用Python缓冲区的
然而,我对hooks的理解仍然非常有限。据我所知,上面的代码将一个函数添加到
这个问题部分是由于 GitHub 上 issue 的启发而来,该问题与 elpy 相关,其中
linum-mode
:(defun my-python-mode-hook ()
(linum-mode 1))
(add-hook 'python-mode-hook 'my-python-mode-hook)
然而,我对hooks的理解仍然非常有限。据我所知,上面的代码将一个函数添加到
python-mode-hook
中,因此我认为这个hook已经被定义了,甚至可能已经有一些代码在其中。有以下问题:
- Emacs是否为所有小模式定义形式为
<minor_mode_name>-hook
的hook?还是模式本身定义它们? - 如何查找已添加到hook的代码?
- 如何更改该hook的元素?
这个问题部分是由于 GitHub 上 issue 的启发而来,该问题与 elpy 相关,其中
elpy-mode
似乎在卸载 elpy 后仍留下了一个钩子用于 python-mode
。请注意,保留 HTML 标签。
python-mode
实际上是一个主模式。主模式是互斥的(即在给定缓冲区中一次只能有一个处于活动状态),而任意数量的次要模式(例如linum-mode
)可以处于活动状态。钩子对于主模式和次要模式都是相同的。 - legoscia