在Emacs中如何突出显示代码行

5

我正在使用一款不支持查看聊天历史记录,也无法更改即时通讯软件的IM。因此,我每次都必须将聊天内容复制到文本文件中。

我正在使用Emacs。是否有一种方法可以突出显示包含参与者名称的行,如下所示?

===> **[Vivek Kumar]**  
Hi, how are you doing!  
===> **[Mr X Y Z]**    
fine  
===> **[Vivek Kumar]**  
sdfksd;fks;

编辑1:

之前我使用gvim时,会使用highlight.vim插件。

1个回答

10

Emacs支持对行或短语进行高亮。您可以使用其中之一 highlight-lines-matching-regexp, highlight-phrase, 或者 highlight-regexp. 我相信还有其他几个。

要尝试这个功能,请将文本复制到编辑器中,按 ESC-x(或者 Alt-x 也可能有效)进入编辑窗口底部的“mini-buffer”,然后输入上述命令之一。

例如,我尝试了: highlight-lines-matching-regexp 并输入了正则表达式 "\[.*\]",并使其匹配您的示例中的名称。以下是截图:

Just after running highlight-lines-matching-regexp

您可以调整此表达式以满足您的需求。一些与Emacs正则表达式相关的链接:

当然,您也可以使用 highlight-phrase 只是高亮一个简单的文本字符串(而不是研究正则表达式)。

这里是一个例子,我运行了 highlight-phrase 并输入了两个单独的名称并为它们分配了不同的颜色(hi-yellowhi-red):

After running highlight-phrase

最后,您可以运行 unhighlight-regexp 来清除高亮显示。


真棒,你教会我了一些东西! - Boris Stitnicky
@dearvivekkumar 不用客气 :) 我发现这个功能是当我需要扫描一个大型文本文件并在其中查找单个重复的字符串时。此外,在emacs中发现功能的好方法是:ESC-x apropos,然后输入一个词如highlight,它会告诉你包含该词的函数。 - scorpiodawg
哦,OS X Mountain Lion中默认的emacs(22.1.1)似乎没有定义这些快捷键。 - scorpiodawg
只有在使用了高亮命令或启用了 global-hi-lock-mode 后,C-x w 才会变得可用 - 有点奇怪。 - Nicholas Riley
2
更常见的前缀绑定是 M-s h。例如,键入 M-s h C-h。它们在全局按键映射中,并默认绑定。我以前没有注意到 C-x w 绑定,但这些显然在 hi-lock-mode 按键映射中,因此除非启用该模式,否则不可用。 - phils
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接