首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在视觉模式下禁用高亮线(邪恶模式)

在视觉模式下禁用高亮线(邪恶模式)
EN

Stack Overflow用户
提问于 2016-11-12 20:52:05
回答 1查看 906关注 0票数 0

我是新的emacs,我想知道如何才能禁用突出线模式(全局-hl线模式),当我们是在视觉模式的邪恶模式。当我们开始选择一个具有hl-线激活的块时,我发现它真的令人困惑,即使它们的背景色不同。当然,当我们离开视觉模式时,我希望hl线模式再次被激活。谢谢。

编辑:我试过这个,我终于能够在视觉模式下禁用hl-line。

(增加-钩子的邪恶-视觉状态-进入钩子(lambda () (setq-本地全局-hl-线模式0)

但是当我离开的时候我无法启用它。我试过了,但没有用:

(Ad-钩子的邪恶视觉状态退出钩子(lambda () (全局-hl-行模式1))

编辑: nevermind,这实际上是有效的:(Ad-钩子‘邪恶-视觉状态-入口-钩子(lambda () (setq-local hl-line nil)

(Ad-钩子的邪恶视觉状态退出钩子(lambda () (全局-hl-线模式为零))

EN

回答 1

Stack Overflow用户

发布于 2016-11-13 10:07:30

最好在当前缓冲区中禁用hl-line模式,而不是全局禁用它:

代码语言:javascript
运行
复制
(add-hook 'evil-visual-state-entry-hook (lambda() (hl-line-mode -1)))
(add-hook 'evil-visual-state-exit-hook (lambda() (hl-line-mode +1)))

请注意,如果您不使用global-hl-line-mode,这可能是一个问题。每次退出可视模式时都会启用hl-line-mode,而不管最初是否启用了hl-line模式。这就是我破解的目的是为了防止:

代码语言:javascript
运行
复制
(defvar-local was-hl-line-mode-on nil)
(defun hl-line-on-maybe ()  (if was-hl-line-mode-on (hl-line-mode +1)))
(defun hl-line-off-maybe () (if was-hl-line-mode-on (hl-line-mode -1)))
(add-hook 'hl-line-mode-hook 
  (lambda () (if hl-line-mode (setq was-hl-line-mode-on t)))))

(add-hook 'evil-visual-state-entry-hook 'hl-line-off-maybe)
(add-hook 'evil-visual-state-exit-hook 'hl-line-on-maybe)

这样,hl-line-mode就不会被篡改,除非它事先在缓冲区中显式地被激活,比如使用(add-hook 'python-mode-hook 'hl-line-mode)

编辑:修复了第二个片段中的hl行模式钩子。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40567535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档