如何使用 pygmentize 显示行号

如何使用 pygmentize 显示行号

我经常使用该命令pygmentize filename.py来显示带有代码格式的彩色源文件。这很管用。我现在也想像它一样显示行号cat -n filename.py

我读了一遍,发现了一些建议,比如添加-O linenos=1-O linenos=True。但这些似乎都不起作用。

有人知道我在命令行上查看源文件时如何显示行号吗?色素? 欢迎提供各种提示!

答案1

您可以使用如下方式添加行号perl

pygmentize file.py | perl -e 'print ++$i." $_" for <>'

更新(为上一个命令添加别名):

要创建别名,只需在某处定义以下 bash 函数~/.bashrc

pyg() {
pygmentize $1 | perl -e 'print ++$i." $_" for <>'
}

打开一个新终端并使用 调用命令pyg file.py

答案2

您是否尝试过将输出通过管道传输到nl --body-numbering=a?对于大多数 shell 工具,您可以在 中找到更多信息man nl

答案3

使用带管道的 cat:

pygmentize filename.py | cat -n

Sylvain 的答案在某种程度上更好,因为它不会在每行开头生成额外的 cat 尾随空格。但有时你可能没有安装 pearl :)

也可以尝试:

pygmentize -g filename.py | cat -n | sed "s/^[ \t]*//"

它为您提供了行号和代码之间的适当空间。

答案4

我对接受的答案进行了一些格式调整以满足我的需要

ccatn() {
        pygmentize -g -O full,style=monokai $1 | perl -e 'for(<>){print sprintf("%3s %s", ++$i,$_);}'
}

像使用它一样 ccatn helloworld.go

相关内容