【问题标题】:Turn off Emacs Whitespace-mode "Long Line" Visualization关闭 Emacs 空白模式“长线”可视化
【发布时间】:2011-10-16 08:13:10
【问题描述】:

我个人将所有行保持在 80 个字符以下,但我也在团队中从事其他程序员不关心行长的项目。

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

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

【问题讨论】:

  • 不想听起来像“The I.T. Crowd”中的 Roy,您是否尝试在切换全局选项后在缓冲区中关闭并再次打开 white-space-mode

标签: emacs whitespace highlighting


【解决方案1】:

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

编辑:特别是您想要自定义 whitespace-style 变量。这使您可以打开和关闭单个样式。在这种情况下,您应该关闭标记为“(面)线”和“(面)线,仅超长部分”的那些。前者在过长时改变整条线的面,而后者只改变超过阈值的部分的面。

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

【讨论】:

  • 请注意,您可以通过自定义“空白样式”设置并删除line-tail 或类似内容来关闭长行“验证”。
  • 这并不能真正回答问题,我的意思是,我们在M-x customize group 中做了什么改变?我已经多次更改“空白线面”(即关闭并保存),但没有任何变化。
  • 我已将我的答案编辑得更具体,但请注意,我的答案更多的是关于为什么更改设置不会更新缓冲区的问题。在应用这些设置之前,您通常必须关闭并重新打开缓冲区。另一方面,编辑 face(与更新 style 变量相反)应该立即更新使用该面孔的所有内容;也许你编辑错脸了?
【解决方案2】:

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

(setq whitespace-line-column 250)

【讨论】:

  • 既然可以关闭它,为什么还要使用 hack?
  • @EugeneBeresovsky 因为这是唯一有效的答案。
【解决方案3】:

我假设您已经在 init.el 或类似的某处激活了 whitespace-mode。如果是这样,你可以适应上面的dumacomment,或者

  • 编辑设置whitespace-style 的省略号以删除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))

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

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

[1]:OP 注意:如果有其他方法可以重新加载缓冲区,请编辑或评论此答案。我希望找到类似 M-x reload-buffer 的东西,但我没有看到类似 C-h a buffer 的东西。

【讨论】:

  • 我认为这个答案是最有用的,如果你想将这个东西与钩子一起用于主要模式,例如当你想为文本编辑停用它,然后再为某些编程语言启用它时.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-12
相关资源
最近更新 更多