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

时间:2011-07-29 23:40:03

标签: emacs whitespace highlighting

我个人保持所有行不超过80个字符,但我也在团队中处理项目,其他程序员不关心行长度。

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

为什么我不能关闭长线可视化?

3 个答案:

答案 0 :(得分:10)

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

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

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

答案 1 :(得分:5)

将whitespace-line-column设置为更高的值(默认值为80),因此长行的突出显示不起作用:

(setq whitespace-line-column 250)

答案 2 :(得分:1)

我假设您已经在whitespace-mode或类似位置的某处激活init.el。如果是这样,您可以调整dumacomment以及

  • 修改设置whitespace-style以删除lines-tail的elisp。例如,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))

    不幸的是,如果使用自动加载的缓冲区运行Prelude(使用Emacs Desktop之类的东西),初始设置将优先:对于您希望按照指示显示whitespace-style的每个缓冲区,必须 [1]

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

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