带有语法突出显示的 cat 替代方案

带有语法突出显示的 cat 替代方案

cat我正在寻找类似但带有语法突出显示的程序。作为一个例子,我想在终端中显示我的一个Python脚本的内容,而不是像我们使用的那样使用分页器cat filename.py

答案1

bat可以cat替代语法突出显示和其他功能。您可以在上面看到一些预览GitHub 页面。这是一个相当新的程序,可能在您最喜欢的发行版存储库中不可用。在这种情况下,您将必须从源代码构建它或下载软件包.deb

答案2

尝试通用着色器:http://kassiopeia.juls.savba.sk/~garabik/software/grc.html(或者更好的是,自述文件https://github.com/garabik/grc)。我看了一些,这是一个“刚刚起作用”的。您可以使用自己的正则表达式调整突出显示,但我发现它开箱即用非常好。您可以选择任何想要着色的内容,或者使用为 bash、zsh 或 Fish 提供的自动别名。

答案3

您可以使用source-highlight。首先,安装source-highlight适用于您的系统的软件包(如果有)。在基于 Debian 的系统上,您可以使用sudo apt install source-highlight.在 Arch 上,它是sudo pacman -S source-highlight.

您现在可以执行以下操作:

source-highlight --failsafe --out-format=esc -o STDOUT -i foo.sh

看起来像:

显示源突出显示输出的屏幕截图 您可以使用许多选项来根据您的喜好调整输出,请参阅man source-highlight。您可以编写一个小包装函数来使其作为cat替代方案:

colorCat(){
    for f; do
     source-highlight --failsafe --out-format=esc -o STDOUT -i "$f"
    done
}

如果将这些行添加到 shell 的初始化文件中(例如~/.bashrcbash),则可以执行以下操作:

colorCat file1 file2 ... fileN

就我个人而言,我发现它作为替代方案更有用,less因为cat源代码文件往往很大,而且能够向后滚动、搜索等功能很好。为此,您可以使用:

cless(){
    LESSOPEN='| source-highlight --failsafe --out-format=esc -o STDOUT -i %s 2>/dev/null ' LESS=-R less "$@" 
}

如果将此文件与多个文件一起使用,则可以使用:n.

相关内容