自定义源突出显示的配色方案?

自定义源突出显示的配色方案?

source-highlight软件包已安装在我的系统上。它突出显示了我使用较少的使用/usr/bin/lesspipeLESSOPEN环境变量查看的文件。

现在,我想更改此机制用于某些/所有文件类型的配色方案。我在机器上有root权限。我该怎么做呢?

注意:这是 Devuan 3 Beowulf (~= Debian 10 Buster) Linux 发行版。

答案1

好吧,您可以在源突出显示中使用不同的样式文件,但用量较少。在 中/usr/share/source-highlight/src-hilite-lesspipe.sh,您会发现:

source-highlight --failsafe --infer-lang -f esc --style-file=esc.style -i "$source" ;;

您可以将 esc.style 替换为不同的样式文件(来自usr/share/source-highlight/)。但是...大多数样式文件与发出 ANSI 转义码不兼容,并且无法工作。所以,你基本上被困住了。

也许尝试联系作者。

在 GNU 源代码突出显示手册中没有找到任何相关内容。

答案2

默认esc值非常糟糕(版本 3.1.8),特别是对于黑色终端,因为函数名称打印为黑色。

我花了几个月的时间试图解决这个问题,终于找到了一个很好的解决方案。修改/usr/share/source-highlight/src-hilite-lesspipe.sh为使用esc256具有更大胆颜色的内置样式:

source-highlight --failsafe --infer-lang -f esc256 --style-file=esc256.style -i "$source" ;;

您可以在自己的样式文件中调整颜色,但我发现esc->esc256更改对于我经常在终端中使用less.

对于选择性检测,您可以使用 lesspipe 脚本来检测文件类型,然后可能使用诸如-s, --src-lang=STRING以不同语言样式启动源突出显示之类的选项。

相关内容