如何在指定模式下禁用hl-line功能

时间:2012-04-03 09:16:15

标签: emacs elisp

我使用以下代码在全局范围内启用hl-mode。

(global-hl-line-mode t) 

在指定模式下关闭hl-line功能。我使用以下代码执行此操作。

(add-hook 'org-mode-hook (lambda () (global-hl-line-mode 0)))

但它关闭了全局范围的hl-line功能。

如何在指定模式下禁用hl-line功能?

3 个答案:

答案 0 :(得分:9)

Commentary中经常有信息和文档 源文件中的部分。

[...]
;; You could make variable `global-hl-line-mode' buffer-local and set
;; it to nil to avoid highlighting specific buffers, when the global
;; mode is used.
[...]

因此,您可以在.emacs中添加类似内容。

(global-hl-line-mode)
(make-variable-buffer-local 'global-hl-line-mode)
(add-hook 'some-mode-hook (lambda () (setq global-hl-line-mode nil)))
...

答案 1 :(得分:1)

使用hl-line-mode的{​​{1}}内容。

编辑:你是对的。这不起作用。

评论说全球模式并不打算使用。我接受了 意味着一旦启用就无法有选择地禁用它。

我在需要它的主模式挂钩中启用global-hl-line-mode

答案 2 :(得分:0)

在dotEmacs文件中写下以下行,并使用f5切换hl-line-mode

(global-set-key [f5] 'hl-line-mode)