【问题标题】:How to highlight tabs in Emacs如何在 Emacs 中突出显示选项卡
【发布时间】:2014-02-25 09:24:10
【问题描述】:

我在源代码中使用空格进行缩进,如何突出显示/标记代码中的标签?

可能是红色的,和我用(setq-default show-trailing-whitespace t)时一样

【问题讨论】:

  • @abo-abo 这是一个问题还是答案?
  • 问题是“whitespace-mode有什么问题吗”?如果没有,那就是答案:)
  • @abo-abo 我只想要制表符而不是所有空格,我可以将空格模式配置为仅显示制表符(并以红色显示),使其看起来与我的尾随空格相同吗?
  • 是的,当然这一切都是可配置的。只需查看 whitespace.el 或尝试自定义界面

标签: emacs colors indentation


【解决方案1】:

作为@abo-abo 的提示,我发现我可以在这段代码中使用空白模式:

(setq whitespace-style '(face tabs))
(whitespace-mode)

【讨论】:

  • 你也可以用(modify-face whitespace-tab nil "#F92672")改变颜色(由于某种原因,我的主题在那个脸上设置了前景色而不是背景色,这没有多大意义)
  • 如果你只想要某些模式下的标签,你可以做例如(add-hook 'haskell-mode-hook (lambda () (whitespace-toggle-options 'tabs)))
【解决方案2】:

只需使用库 highlight-chars.el 中的命令 toggle-highlight-tabs

或者您可以通过在您的初始化文件中添加函数hc-highlight-tabsfont-lock-mode-hook 来默认打开标签突出显示:

(add-hook 'font-lock-mode-hook 'hc-highlight-tabs)

您可以打开/关闭库Highlight Chars提供的突出显示:

  • 仅在当前缓冲区中(即本地),
  • 全局启用字体锁定模式,或
  • 当缓冲区处于给定主要模式时自动进行

【讨论】:

  • 它似乎不适用于highlight-current-line。
  • 不知道你的意思。 vanilla Emacs 中没有函数highlight-current-line。你的意思是hl-line-mode 吗?如果是这样,那么是的,您将不会在当前行上看到选项卡突出显示,因为覆盖突出显示始终优先于文本属性突出显示并且highlight-char.el 使用使用文本属性的字体锁定。
  • 我使用 highlight-current-line 模式,但是当我重新启动 Emacs 时它可以与 hc-highlight-tabs 一起使用。
  • 函数highlight-current-line在哪里定义?
  • emacswiki.org/emacs/HighlightCurrentLine#toc5 但它现在可以工作了。我已经使用了你的解决方案。
猜你喜欢
  • 2020-01-11
  • 1970-01-01
  • 1970-01-01
  • 2016-04-15
  • 2019-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-26
相关资源
最近更新 更多