【问题标题】:How to highlight code parts that are longer than 80 chars?如何突出显示超过 80 个字符的代码部分?
【发布时间】:2012-04-01 13:31:21
【问题描述】:

在 Emacs 中,我想突出显示超过 80 个字符的长行部分。

highlight-80+ 包非常适合。但是如何在加载 C++ 源文件时自动启用它呢?

我尝试将highlight-80+添加到C++模式,但没有成功:

(require 'highlight-80+)
(defun my-c++-mode-common-hook ()
  (highlight-80+-mode 1))
(add-hook 'c++-mode-common-hook 'my-c++-mode-common-hook)

当我加载一个 .cc 文件时,它会进入 C++ 模式,但 highlight-80+ 未启用,因此不会标记长行。

【问题讨论】:

  • 弗兰克,我想你快到了。在代码的最后一行,它不是C++-mode-common-hook,而是C++-mode-hookc-mode-common-hook

标签: emacs highlighting long-lines


【解决方案1】:

你可以试试这个:

(autoload 'highlight-80+)
(add-to-list 'auto-mode-alist '("\\.cpp$" . highlight-80+-mode))

【讨论】:

  • 谢谢。但后来它不再是 C++ 模式,而只是 highlight-80+ 模式,作为主要模式。
  • 抱歉,您可以在(eval-after-load "c++-mode" 之后尝试(add-hook... 吗?
  • 所以看起来:(eval-after-load "c++-mode" (add-hook 'c++-mode-common-hook 'my-c++-mode-common-hook))
  • eval-after-load 在这里不需要,因为您可以添加到任何钩子的符号中,而不管它是否存在。并且:如果您使用eval-after-load,则必须引用要评估的表格,否则将立即评估,因此(eval-after-load "c++-mode" '(add-hook 'c++-mode-common-hook 'my-c++-mode-common-hook))
【解决方案2】:

请注意,Highlight80Plus wiki 说它是从 23 开始的 emacs 内置的。我相信它指的是空白模式;它做到了这一点,并内置在 emacs 中。

emacs-starter-kit 中有一个函数已经完成了类似的操作,但您可以轻松复制它,

(defun esk-turn-on-whitespace ()
  (whitespace-mode t))

(add-hook 'prog-mode-hook 'esk-turn-on-whitespace)

【讨论】:

    【解决方案3】:

    查看whitespace-mode,它会进行这种突出显示等等:

    http://www.emacswiki.org/emacs/WhiteSpace

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-17
      • 1970-01-01
      • 2016-10-12
      • 2022-06-25
      • 1970-01-01
      • 2018-12-29
      • 2021-06-14
      • 1970-01-01
      相关资源
      最近更新 更多