我是新的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-线模式为零))
发布于 2016-11-13 10:07:30
最好在当前缓冲区中禁用hl-line模式,而不是全局禁用它:
(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模式。这就是我破解的目的是为了防止:
(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行模式钩子。
https://stackoverflow.com/questions/40567535
复制相似问题