Supercat 文本着色器

作者:LJ Staff,发布于 2007 年 11 月 25 日

Supercat 应用程序根据文件类型以及与该文件类型相关联的一组规则,对任何输入的文本进行着色。 这些规则用于匹配输入文本中找到的字符串,并且可以使用简单的字符或字符串、正则表达式和特殊的时序格式化规则来指定。 Supercat 灵活且可扩展; 无需软件开发即可添加新的文件类型。

您可以从 http://supercat.nosredna.net 下载 Supercat(撰写本文时,最新版本为 0.5.3)。 Supercat 也可在 Gentoo 的 portage 系统和 Ubuntu 即将发布的 Hardy Heron 中找到。 安装 Supercat 非常简单 -- 唯一需要指定的是 --system-directory 'configure' 选项。 安装完成后,您可以在许多文件上运行 Supercat。 例如

$> spc file.c

这将为您提供一个彩色列表(类似于 Vim 如何对文本着色)。 Supercat 尝试根据文件后缀确定文件类型,或者在扩展名为 .log 的情况下,Supercat 删除后缀并查找文件名(例如,error.log 的文件类型为 error)。 用户可以在命令行上显式覆盖文件类型。

所有着色文本的规则都存储在名称为 spcrc-ext 的文件中,其中“ext”是文件类型。 这些文件存储在配置的“系统目录”中,或者存储在您的私有 ~/.spcrc 目录中。

所有着色文本的规则都存储在名称为 spcrc-ext 的文件中,其中“ext”是文件类型。 这些文件存储在配置的“系统目录”中,或者存储在您的私有 ~/.spcrc 目录中。 例如,spcrc-c 中 C 源代码文件的规则可能如下所示

# HTML COL COL A N T CHARACTER, STRING or REGULAR EXPRESSION

########## ### # # #
#####################################################
Red        red b
    ([a-zA-Z][a-zA-Z0-9_]*)[[:space:]]*(
Yellow     yel b    
(while|for|if|switch|main|return)[[:space:]]*(
Yellow     yel b   s
else
Cyan       cya     s case
Cyan       cya     s return
Cyan       cya     s default
Cyan       cya b    
[[:space:]]*(include)
Green      grn       (do)[[:space:]]*{
Green      grn       (break|continue)[[:space:]]*;
Magenta    mag   
   (int|char|short|float|double|long|unsigned)[[:space:]]
Blue      
blu b     [^[:alnum:]_]([[:digit:]]+)
Yellow     yel      
"(.*)"
Yellow     yel       
Magenta    mag
    c :;

匹配是使用配置文件中每行末尾的模式中的信息执行的。 如果行的某一部分与模式匹配,则为匹配的字符指定指定的颜色。 匹配的类型在“T”列中指定,默认为 REGEXP。

其他列指定要使用的视频着色属性。 “COL”表示控制台颜色; “A”是可选的视频属性(例如,粗体,下划线); “N”控制将匹配应用于行的次数。 “HTML COL”列的存在是因为 Supercat 支持以 HTML 格式输出其彩色文本,以便通过 Web 浏览器查看。

Supercat 提供了灵活性和可扩展性,而无需编程。 Supercat 还有许多其他选项和优点,但我将让您自己去发现它们,因为它们很广泛且超出此简短操作指南的范围。

此技术提示由来自美国新泽西州的 Thomas 提供。 谢谢,托马斯!

Linux Journal 上成名很容易。 只需发送给我们您有用的技术提示,与 Linux 社区分享,我们将为您送上一件很酷的 T 恤!

请注意:LinuxJournal.com 此特定部分中使用的技术提示由读者好心提供,未经 LinuxJournal.com 编辑测试。