【问题标题】:how to disable hl-line feature in specified mode如何在指定模式下禁用 hl-line 功能
【发布时间】: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 功能?

【问题讨论】:

标签: emacs elisp


【解决方案1】:

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
【解决方案2】:

使用hl-line-mode insted of global-hl-line-mode

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

评论说全局模式不是要使用的。我把它带到 意味着一旦启用就无法选择性地禁用它。

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

【讨论】:

  • 我已经尝试过了。但是“(hl-line-mode 0)”不能关闭由“(global-hl-line-mode t)”开启的hl-line
【解决方案3】:

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

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

【讨论】:

    猜你喜欢
    • 2011-04-02
    • 1970-01-01
    • 2015-05-24
    • 1970-01-01
    • 1970-01-01
    • 2011-05-28
    • 1970-01-01
    • 2020-10-14
    • 1970-01-01
    相关资源
    最近更新 更多