关闭Emacs空白模式“长线”可视化

问题描述:

我个人保留所有行少于80个字符,但我也在其他程序员不关心行长的团队中工作。关闭Emacs空白模式“长线”可视化

我喜欢使用空白模式,但当我在处理不应该干扰长行的项目时,长行可视化真的很烦人。似乎应该很容易关闭长线可视化---我点击m-x global-whitespace-toggle-options l,然后点击m-x global-whitespace-toggel-options ?确认“长线可视化”已关闭。但长线仍然突出显示。我杀死缓冲区并重新加载它们,突出显示仍然存在。我绝对使用全局而非本地的空白模式。

为什么我无法关闭长线可视化?

+1

没有想从“The I.T. Crowd”听起来像Roy,你是否尝试过在切换全局选项后关闭缓冲区中的'white-space-mode'并再次打开? – sanityinc

我最后一次自定义whitespace-mode,我注意到对设置的更改对已存在的缓冲区没有任何影响;尝试重新创建缓冲区,或者离开并重新进入whitespace-mode。如果您还不知道,可以使用M-x customize-group whitespace完全关闭该特定选项,而不是手动完成。

编辑:具体而言,您要自定义whitespace-style变量。这可让您打开和关闭各个样式。在这种情况下,您应该关闭标有“(脸部)线条”和“(脸部)线条,只有超长部分”的标签。前者在过长时改变整条线的面,而后者只改变延伸超过阈值的部分的面。

(此组中的其他选项定义whitespace-mode将用于突出显示您打开的样式,用于识别特定情况的正则表达式等,但通常您只关心whitespace-style)。

+1

请注意,您可以通过自定义“空白样式”设置以及删除“线尾”或类似项来关闭长线“验证”。 – duma

+0

但这并不能真正回答这个问题,我的意思是,我们在“M-x自定义组”中改变了什么?我已经多次改变了“空白线面”(即关闭并保存)并且没有任何变化。 – Startec

+0

我编辑了我的答案,以更具体,但请注意,我的答案更多的是为什么更改设置没有更新缓冲区的问题。在应用这些设置之前,您通常必须关闭并重新打开缓冲区。另一方面,编辑_face_(而不是更新_style_变量)应立即更新使用该面部的所有内容;也许你在编辑错误的脸? – db48x

设置空白行,列一个较高的值(默认为80),所以排长队加亮不踢:

(setq whitespace-line-column 250)

+4

为什么使用黑客时,你可以关闭它? –

+0

@EugeneBeresovsky因为这是唯一真正有效的答案。 – Startec

我假设你已经有了whitespace-mode在您的​​或类似地方激活。如果是这样,你能适应dumacomment以上,并且或者

  • 编辑,设置whitespace-style的elisp的去除lines-tail。例如。,Emacs Prelude

    (setq whitespace-style '(face tabs empty trailing lines-tail))

    简单的改变,要

    (setq whitespace-style '(face tabs empty trailing))

  • 如果你不想直接编辑elisp的,而是用自己的代码后覆盖它,做一些事情像

    (setq whitespace-style (delete 'lines-tail whitespace-style))

    不幸的是,如果运行带有自动载入的缓冲区(使用类似Emacs Desktop)的前奏,初始设置将优先:对,你想看到whitespace-style的指示显示的每个缓冲区,必须[1]

    1. 杀缓冲
    2. 重新打开缓冲

[1]:注意OP:如果有另一种方式来重新加载一个缓冲区,请编辑或评论这个答案。我希望能找到类似M-x reload-buffer的东西,但是我没有看到类似C-h a buffer的东西。

+0

我认为这个答案是最有用的,如果你想使用钩子的主要模式,例如当你想停用它的文本编辑,但然后再次启用它的一些编程语言的东西。 – Zelphir