在 Emacs 中,如何根据缓冲区名称自动启用次要模式?

2024-05-15

我有一个 Emacs 扩展,它创建一个名为*erl-output*。该缓冲区仅由以下内容创建fundamental-mode默认情况下。有什么办法可以自动启用compilation-minor-mode在那个缓冲区上?


要自动更改主要模式,您可以将以下内容添加到 .emacs 文件中:

(add-to-list 'auto-mode-alist '("^\\*erl-output\\*$" . my-major-mode))

这对你不起作用;这是为了major模式选择,然后你就可以了minor模式选择。

相反,你可以尝试Hook http://www.gnu.org/software/emacs/manual/html_node/emacs/Hooks.html。手册说:

钩子是一个 Lisp 变量,它保存一个函数列表,在某些明确定义的场合调用。

因此,您应该能够编写一个在需要时设置次要模式的函数。看着标准挂钩列表 http://www.gnu.org/software/emacs/manual/html_node/elisp/Standard-Hooks.html我认为你应该尝试temp-buffer-setup-hook or temp-buffer-show-hook http://www.gnu.org/software/emacs/manual/html_node/elisp/Temporary-Displays.html#Temporary-Displays.

您必须编写一个函数来检查缓冲区名称并根据需要设置模式,然后使用类似以下内容的内容将其添加到挂钩中.emacs:

(add-hook 'temp-buffer-setup-hook 'my-func-to-set-mode)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Emacs 中,如何根据缓冲区名称自动启用次要模式? 的相关文章

随机推荐