我如何使emacs突出显示超过80个字符的行?

我知道有一些解决scheme可以让emacs显示80行的列,但是我不想要那种视觉干扰。 如果超过80个字符,我只想让它突出显示一行。

另一个简单的方法是在expression式.\{81\}上运行highlight-lines-matching-regexp

每行81个字符或更多的行会用您select的颜色突出显示。

看到whitespace-mode – 它现在是Emacs的一部分,并且可以做更多的事情,而不仅仅是突出显示长线。 (但当然可以用来做到这一点。)

这是我从Emacs开发工具包的configuration:

 ;; whitespace-mode ;; free of trailing whitespace and to use 80-column width, standard indentation (setq whitespace-style '(trailing lines space-before-tab indentation space-after-tab) whitespace-line-column 80) 

基本上你只需要最后一点,但我发现其他设置相当有用(我讨厌标签和尾随空格)。

试试highlight-80+.el 。 你可以从这里获得它。

要安装它,只需将以下添加到您的.emacs

 (add-to-list 'load-path "/path/to/highlight-80+") (require 'highlight-80+) 

您可以通过以下方式启用它:

Mx highlight-80+-mode

下面是一些示例代码,它将使用当前的“警告”面板突出显示位于第80列以外的文本,以及为C ++模式启用它的行。

 ;; Turn on warn highlighting for characters outside of the 'width' char limit (defun font-lock-width-keyword (width) "Return a font-lock style keyword for a string beyond width WIDTH that uses 'font-lock-warning-face'." `((,(format "^%s\\(.+\\)" (make-string width ?.)) (1 font-lock-warning-face t)))) (font-lock-add-keywords 'c++-mode (font-lock-width-keyword 80)) 

它没有突出整个行,但我觉得这是相当有帮助的。

这不完全是你想要的,但我有一个类似的问题,并发现这个问题/答案。 我只想要插入一个视觉指南,当我需要它。 这是我终于结束了:

 (defun insert-80 () "Insert an 80-character-wide guide at beginning of line." (interactive) (beginning-of-line) (insert "0 1 2 3 4 5 6 7 |") (newline) (insert "01234567890123456789012345678901234567890123456789012345678901234567890123456789|") (newline) ) 

超级简单,但有时非常有效。

emacs-goodies-el (build议安装在terminal中)中有一个内置的软件包,名为highlight-beyond-fill-column.el ,将其添加到.emacsinit.el

 (setq-default fill-column 80) (add-hook 'prog-mode-hook 'highlight-beyond-fill-column) (custom-set-faces '(highlight-beyond-fill-column-face ((t (:foreground "red" ))))) 

片段中fill-column 80以外的文本将以red突出显示。 你可以设置你喜欢的脸。