我遇到了突出显示大于80个字符的常见问题的相反问题。我需要突出显示少于80个字符的行。我用Google搜索但找不到任何解决方案。我没有运行命令并获得少于80个字符的hte行号转储。投入赞赏 感谢
答案 0 :(得分:3)
您可以将highlight-regexp
用于此
M-x
highlight-regexp
enter
^.\\{1,80\\}$
enter
enter
然后使用unhighlight-regexp
撤消它。您输入的那个将在历史中。
你可以将它包装在你自己的次要模式中,如下所示:
(define-minor-mode highlight-less-than-80-mode
"Minor mode for highlighting lines less than 80 characters."
:init-value nil
:global nil
:lighter "<80"
(if highlight-less-than-80-mode
(highlight-regexp "^.\\{1,80\\}$" 'error)
(unhighlight-regexp "^.\\{1,80\\}$")))
另外
我写了column-enforce-mode来突出显示超过80列的行,并且我只能将一个unless
更改为if
和一个(point)
,从而使其工作方式相反到(point-at-bol)
。如果您愿意,也可以从melpa安装column-enforce-mode
并自行进行修改。从2014年8月25日开始,需要在第200行和第202行进行两项更改。与column-enforce-mode和使用highlight regexp的区别在于它测量的是列,而不是字符,所以这可能是也可能不是你的正在寻找。
答案 1 :(得分:2)
此函数将转储(作为列表)短于80个字符的行的行号:
(defun id-short-lines (&optional nchars)
"Returns a list of lines less than NCHARS characters
long (default: 80)."
(let (lines)
(save-excursion
(goto-char (point-min))
(while (not (eobp))
(when (< (- (point-at-eol) (point-at-bol))
(or nchars 80))
(push (line-number-at-pos) lines))
(forward-line 1))
(nreverse lines))))
如果这是一次性问题(或至少是一个罕见问题),那么线路转储可能很好;否则,您可能需要根据评论建议调查fill-column-indicator
和面孔。