如何在文件上显示语法突出显示?


42

cat在源文件上使用时,是否存在输出语法突出显示的代码行的变体?

一个想法:也许vi[m]或要求另一个编辑器将所说文件的语法突出显示的内容转储到stdout并立即退出?

Answers:


48

传递文件将尝试从文件名中检测类型并适当突出显示它。pygmentize-f terminal


徽标中是否有星际迷航:深空九号字体?如果真是太棒了。
amphetamachine

2
可作为python-pygmentsDebian上的软件包使用。
enzotib

6
我发现alias pcat="pygmentize -f terminal256 -O style=native -g"这是一个不错的解决方案
MikaelÖhman'12

1
也可以通过pip install pygments
craigb

1
其实一定是cat code.extension | pygmentize -f terminal -l extension
fiatjaf 2015年

13

所述源高亮包是随esc.outlang输出语言定义,这与ANSI转义序列亮点。

包装src-hilite-lesspipe.sh中还包含一个方便的包装器,因此在终端中显示突出显示的输出为just src-hilite-lesspipe.sh source.file

实际上src-hilite-lesspipe.sh,首要的原因是帮助自动化source-highlightwith 的使用less。您只需设置:

export LESSOPEN="| /path/to/src-hilite-lesspipe.sh %s"
export LESS=' -R '

然后,任何less source.file将显示突出显示的源代码。(使用未知语言的代码将原封不动地传递。如果重定向的内容(如less < source.file),也将跳过突出显示。)


好的,谢谢您抽出宝贵的时间写下此答案
Paolo

3

高光易于使用且比pygmentize


2
只是不要忘记使用-O ansi:与pygmentizehighlight默认情况下会输出HTML。
Ruslan

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.