【发布时间】:2012-04-16 22:28:15
【问题描述】:
我使用以下代码在全局范围内启用 hl-mode。
(global-hl-line-mode t)
在指定模式下关闭 hl-line 功能。我用下面的代码来做。
(add-hook 'org-mode-hook (lambda () (global-hl-line-mode 0)))
但它会关闭全局范围的 hl-line 功能。
如何在指定模式下禁用 hl-line 功能?
【问题讨论】:
我使用以下代码在全局范围内启用 hl-mode。
(global-hl-line-mode t)
在指定模式下关闭 hl-line 功能。我用下面的代码来做。
(add-hook 'org-mode-hook (lambda () (global-hl-line-mode 0)))
但它会关闭全局范围的 hl-line 功能。
如何在指定模式下禁用 hl-line 功能?
【问题讨论】:
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)))
...
【讨论】:
(add-hook 'term-mode-hook (lambda () (setq global-hl-line-mode nil)))。当我处于ansi-term 模式时,我试图关闭hi-line 功能。有什么建议吗?
setq-local 而不是make-variable-buffer-local?
使用hl-line-mode insted of global-hl-line-mode。
编辑:你是对的。这不起作用。
评论说全局模式不是要使用的。我把它带到 意味着一旦启用就无法选择性地禁用它。
我在需要的主要模式挂钩中启用了hl-line-mode。
【讨论】:
在您的 dotEmacs 文件中写入以下行,并使用 f5 切换 hl-line-mode
(global-set-key [f5] 'hl-line-mode)
【讨论】: