【发布时间】:2012-11-04 16:18:11
【问题描述】:
我有一个可以输出 JSON 和 YAML 的命令行程序。默认情况下,它会检测 pygments (pygmentize) 是否可用,如果可用,则将输出传递给它以获得漂亮的彩色输出。但是,默认情况下,运行该程序的大多数计算机上都不会安装 pygments。但是大多数计算机都会有 emacs 或 vim,但是,有。有没有办法让这些编辑器中的一个使用 ANSI 转义序列对某些文本进行语法高亮显示,然后再次输出?
【问题讨论】:
-
顺便说一句,我刚刚发现了 coderay。它是基于 ruby 的,它的命令行程序比 pygmentize 快得多。
-
另一个选项是GNU Source-highlight。我用它来获得less 的颜色。
-
@RandyMorris:是的,它甚至还有一个 CPAN 模块(我的程序是基于 Perl 的)。唯一的问题是依赖关系很大(安装 source-highlight 及其开发库来构建 CPAN 模块会拉取大约 100MB 的 Debian 包)。
-
我通过创建 JSON 和 YAML 颜色转储器解决了我的问题。原来我真的不需要语法荧光笔(脸红)。但我感谢答案中的建议。
标签: vim emacs syntax-highlighting pygments