我想在rainbow-mode
每次启动 emacs 时启用,而不必使用M-x rainbow-mode
.
我想我在 .emacs 文件中放了一些命令。
我尝试了以下所有方法,但都没有奏效:
(require 'rainbow-mode)
(rainbow-mode initialize)
(global-rainbow-mode)
更一般地说,如何在启动时自动加载任何模式/包?
rainbow-mode
不是全局次要模式,因此需要在每个缓冲区的基础上启用它。
我只将它用于 CSS,所以我有:
(add-hook 'css-mode-hook 'my-css-mode-hook)
(defun my-css-mode-hook ()
(rainbow-mode 1))
如果您真的希望它是全局的,无处不在,您可以轻松地自己定义一个全局次要模式:
(define-globalized-minor-mode my-global-rainbow-mode rainbow-mode
(lambda () (rainbow-mode 1)))
(my-global-rainbow-mode 1)
您可以向该函数添加任意逻辑(lambda () (rainbow-mode 1))
(将在每个缓冲区中进行评估)以确定是否实际调用(rainbow-mode 1)
给定缓冲区,因此如果您对 elisp 感到满意,那么您可以轻松扩展此方法以覆盖您对相关模式的具体要求。
更一般地说,如何在启动时自动加载任何模式/包?
它可能会有所不同,但我展示的方法对于大多数次要模式就足够了:要么您希望在启用时MODE
启用它们(作为某个特定的其他模式名称),在这种情况下您可以使用MODE-hook
变量(它将始终可用)根据css-mode-hook
示例;或者您希望永久启用该模式,在这种情况下,全局次要模式是一种好方法(因为您可以全局打开和关闭它)。my-global-rainbow-mode
一些次要模式默认是全局的(或提供全局变体),但如果需要,您可以根据示例创建自己的模式。
另请注意,模式可以从其他模式派生,在这种情况下,将运行所有相关挂钩(有关详细信息,请参阅https://stackoverflow.com/a/19295380/324105)。一个常见的用例是用于启用从它派生的所有编程模式所需的功能(这是大多数编程模式)。MODE-hook
prog-mode-hook
请记住,许多(希望是大多数)库和包将提供使用说明。如果找不到文档,请务必尝试M-x find-library
访问库文件,然后通读顶部的注释。通常有一个信息量很大的“评论”部分,有时这是最终用户文档的主要来源,并解释了如何启用其功能。