如何在指定的主模式中禁用全局次要模式

8

我使用Prelude,我想在所有prog模式中启用hs-minor-mode,除了web-mode。我写了以下代码:

(add-hook 'prog-mode-hook #'hs-minor-mode)          
(make-variable-buffer-local 'hs-minor-mode)        
(add-hook 'web-mode-hook (lambda () (setq hs-minor-mode nil)))      

我在 personal.el 文件中写了代码,但它不起作用!

我该怎么办?


1个回答

9

通常,要禁用一个小模式,仅设置变量是不够的。你必须调用该模式函数。因此,请尝试类似以下方式:

(add-hook 'web-mode-hook (lambda () (hs-minor-mode -1)))

1
另一种方法是使您的“prog-mode-hook”取决于当前模式。 - Tom Tromey
请给我一个例子好吗?我不知道如何使prog-mode-hook有条件。 - zwb
将一个函数挂钩,执行类似于(unless (eq major-mode 'web-mode) (hs-mode)))的操作。 - Tom Tromey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接