我知道有一些解决办法让emacs显示80行专栏,但我不希望出现这种视觉干扰。如果超过80个字符,我只想突出显示一行。
答案 0 :(得分:49)
另一个简单的选择是在表达式highlight-lines-matching-regexp
上运行.\{81\}
。
每行81个或更多字符的行将以您选择的颜色突出显示。
答案 1 :(得分:32)
请参阅whitespace-mode
- 它现在是Emacs的一部分,除了突出显示长行之外,还可以做更多的事情。 (但当然可以用来做那个。)
答案 2 :(得分:6)
这是我Emacs Dev Kit的配置:
;; 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)
基本上你只需要最后一点,但我发现其他设置非常有用(我讨厌标签和尾随空格)。
答案 3 :(得分:5)
试试highlight-80+.el
。您可以从here获取它。
要安装它,只需将以下内容添加到.emacs
:
(add-to-list 'load-path "/path/to/highlight-80+")
(require 'highlight-80+)
然后您可以通过以下方式启用它:
M-x highlight-80+-mode
答案 4 :(得分:2)
下面是一些示例代码,它将使用当前“警告”面突出显示超出第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))
它没有突出整行,但我发现它有相当的帮助。
答案 5 :(得分:2)
这不完全是您想要的,但我遇到了类似的问题并找到了这个问题/答案。我想要的只是在需要时插入视觉指南。这就是我最终的结果:
(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)
)
超级简单,但有时非常有效。
答案 6 :(得分:2)
emacs-goodies-el
中有一个内置软件包(建议在终端中安装)名为highlight-beyond-fill-column.el,将其添加到.emacs
或init.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" )))))
代码段中80后的fill-column
以外的文字将以red
的颜色突出显示。您可以根据需要设置面部。
答案 7 :(得分:1)
这与此处的其他答案类似,具有使用fill-column
的优点,并且在模式切换后运行。因此,每种模式都可以拥有自己的线宽,并通过突出显示得到适当的尊重。
(add-hook 'after-change-major-mode-hook
(lambda ()
(when (derived-mode-p 'prog-mode)
(let ((column-re (format "^[^\n]\\{%d\\}\\(.*\\)$" fill-column)))
(font-lock-add-keywords nil
`((,column-re 1 font-lock-warning-face prepend)))))))
如果您希望为文本文件启用此功能,则可能不会删除prog-mode
检查。