「GNU Emacs」- 高亮设置(Highlight)

  CREATED BY JENKINSBOT

问题描述

通过高亮(Highlight),可以区分内容、突出显示,帮助我们阅读文章内容。比如:在代码中,高亮成对出现的括号,可以让我们快速发现问题;

该笔记将记录:在 GNU Emacs 中,如何进行各种高亮设置,比如 高亮当前行、高亮选中文本、高亮匹配特定文本的行 等等。

解决方案

高亮选中文本:M-x customize-variable RET,搜索 Region 并修改 Region 字段

高亮当前行

M-x customize-group [RET] hl-line [RET],然后修改如下参数:
1)Global Hl Line Mode:全局启用高亮当前行;
2)Hl Line face / Backgroud:高亮当前行的背景颜色;

但是,如果当前行没有 LF(换行字符),是无法高亮整个行的(这也是我们使用 高亮当前行号 方案的原因)。

高亮当前行号

做为 高亮当前行 的替代方案 —— 高亮当前行号,有以下几种方案:
1)linum-mode + hlinum-mode,插件 hlinum-mode 本就是 linum-mode 的扩展;
2)display-line-numbers-mode,推荐方法,该插件是用于显示行号,但是支持高亮当前行号;

display-line-numbers-mode 中,高亮当前行号的方法如下:
1)M-x customize-group [RET] display-line-numbers [RET]
2)修改 Line Number Current Line face: 属性

高亮匹配的括号

EmacsWiki: Show Paren Mode
26.4.3 Matching Parentheses

M-x customize-group [RET] paren-showing [RET],然后修改如下参数:
1)Show Paren Mode:启动高亮括号模式;
2)Show Paren Style:选择 parenthesis 选项,高亮括号;选择 expression 选项,高亮括号及内容;

高亮匹配特定内容的行

regex – Highlight whole line (from left border to right border) in Emacs’ regexp mechanism – Stack Overflow
highlighting – How to highlight all occurrences of a word in an Emacs buffer? – Stack Overflow

使用 highlight-regexp 实现。

但是,我们希望可以高亮整个行,而不是仅仅高亮文本。目前(03/04/2021),还没有找到相关方法。

TODO 高亮包含特定文本的行(整行高亮)

参考文献

How do I change the highlight color for selected text with Emacs / deftheme? – Stack Overflow
emacs – Colorize current line number – Stack Overflow