`cat` 可以使用颜色代码标记显示文件吗?

kra*_*r65 48 colors cat

有时我很快想从命令行查看文件的内容。为此,我当然会使用cat,但它通常是PythonJava或简单HTML 中的源文件。对于这些文件,如果cat可以为文件提供一些颜色标记会很方便,以便阅读更容易。

可以cat做这样的事情?

txw*_*ger 53

cat无法做到这一点。但是,也许pygments可以帮助您。它是一个 python 脚本,可以通过 apt-get 安装

sudo apt-get install python-pygments
Run Code Online (Sandbox Code Playgroud)

或通过easy_install轻松下载和安装。

它支持许多源代码语言和标记语言

它被使用

pygmentize -g <filename>
Run Code Online (Sandbox Code Playgroud)

  • 打开文件为`pygmentize -g &lt;filename&gt;`,`-g` 开关对于在没有词法分析器的情况下处理文件很重要。例如,如果你尝试在没有 `-g` 的情况下打开 `/etc/fstab`,它将失败。 (6认同)
  • 这是最好的,然后别名 cat 到 pygmentize -g 并且你是金子。在fish中,它很简单,就像`funced cat... type pygmentize -g $argv... save..funcsave cat`。 (4认同)
  • 好吧,我玩了很多。你可以找到它,尝试 `pygmentize --help` 如果传递了 `-g`,尝试从文件内容中猜测词法分析器,或者如果失败则作为纯文本传递(这可以用于标准输入)。 (2认同)

Rin*_*ind 19

不是来自cat它本身,但您可以使用诸如source highlitesupercathighlight 之类的东西

来源突出

这个程序,给定一个源文件,生成一个语法高亮的文档。它还提供了一个 C++ 高亮库(新)(从 3.0 版开始)。

Source-highlight 动态读取源语言规范,因此可以轻松扩展(无需重新编译源代码)以处理新语言。它还动态读取输出格式规范,因此可以轻松扩展(无需重新编译源代码)以处理新的输出格式。这些规范的语法非常简单(查看手册)。

安装手册:

有关详细的构建和安装说明,请参阅文件 INSTALL;无论如何,如果您习惯于编译带有源代码的 Linux 软件,您可以简单地遵循通常的程序,即,解压缩您在目录中下载的文件,然后:

 cd <source code main directory>
 ./configure
 make
 make install
Run Code Online (Sandbox Code Playgroud)

超级猫

这是 Supercat 的主页。Supercat 是一个基于匹配的正则表达式/字符串/字符为文本着色的程序。Supercat 支持 html 输出以及标准 ASCII 文本。与现有的一些文本着色程序不同,Supercat 不需要您必须是程序员才能制定着色规则。

如果您为标准文件类型编写了 supercat 配置文件,请随时通过“bug-spc (at) nosredna (dot) net”与我联系,以便将其包含在 supercat 发行版中。

或者使用一个函数source):

#!/bin/bash#!/bin/bash
if [ ! -t 0 ];then
        file=/dev/stdin
elif [ -f $1 ];then
        file=$1
else
        echo "Usage: $0 code.c"
        echo "or e.g. head code.c|$0"
        exit 1
fi
pygmentize -f terminal -g $file
Run Code Online (Sandbox Code Playgroud)

要求:Pygments ( sudo apt-get install python-pygments python3-pygments) 将其作为函数添加到 bash .functions 并为其命名为 color()


Wil*_*ilf 16

从这里的答案开始,您可以使用这些python-pygments包来突出显示内容。首先做:

sudo apt-get install python-pygments python3-pygments
Run Code Online (Sandbox Code Playgroud)

然后:

pygmentize -g FILENAME
Run Code Online (Sandbox Code Playgroud)

然后试一试:

在此处输入图片说明

您还可以将其设置为别名,就像在我链接的答案中一样 - 基本上,运行这个:

echo "alias catc='pygmentize -g'" >> ~/.bash_aliases 
chmod +x ~/.bash_aliases
Run Code Online (Sandbox Code Playgroud)

关闭终端,再次打开它,catc命令现在应该可以工作了——如果没有,请确保这些行在.bashrc文件中,并且没有注释:

if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
Run Code Online (Sandbox Code Playgroud)

另一件事就是使用nano

nano testfile
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明


a d*_*ben 7

man view 或者 man vim

基本用法: view <filename>

退出:(如果使用,则:q<Return>添加<Esc>第一个vim),或ZZ(大写 z 两次)。

程序员的文本编辑器vim已经拥有您所需要的一切,而且很可能已经是您系统的一部分。

vim具有使用view或激活的只读模式vim -R。如果您只想查看标记的文件,就足够了。

使用简单,可导航,随处可用。无需为安装新软件或编写 bash 脚本而烦恼。