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

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

cat能做这样的事吗?

cat不能这样做。 但是,也许pygments可以帮助你。 它是一个python脚本,可以通过apt-get安装

 sudo apt-get install python-pygments 

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

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

它被使用

 pygmentize -g  

不是来自cat本身,但你可以使用像source highlite或supercat或highlight这样的东西

来源高亮

给定源文件,该程序生成具有语法突出显示的文档。 它还提供了一个C ++高亮库(新版)(自3.0版本起)。

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

关于安装的手册:

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

  cd  ./configure make make install 

Supercat

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

如果你已经为标准文件类型编写了一个supercat配置文件,请不要犹豫,联系我“bug-spc(at)nosredna(dot)net”,以便可能包含在supercat发行版中。

  • 这是 Supercat在Gentoo的emerge.log上的一个示例页面

  • 安装/源文件(tar.gz)

  • 示例配置文件

或者使用函数 ( 源 ):

 #!/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 eg head code.c|$0" exit 1 fi pygmentize -f terminal -g $file 

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

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

 sudo apt-get install python-pygments python3-pygments 

然后:

 pygmentize -g FILENAME 

然后去吧:

在此处输入图像描述

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

 echo "alias catc='pygmentize -g'" >> ~/.bash_aliases chmod +x ~/.bash_aliases 

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

 if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases fi 

另一件事就是使用nano

 nano testfile 

在此处输入图像描述

man viewman vim

基本用法: view

退出:: :q (如果使用vim首先添加 )或ZZ (大写z两次)。

程序员的文本编辑器vim已经拥有了你所需要的一切,并且很可能已经成为你系统的一部分。

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

易于使用,可导航,随处可用。 无需安装新软件或编写bash脚本。

cat不能单独生成语法高亮。 仍然可以使用python-pygments 。 首先从终端安装,因为,

 sudo apt-get install python-pygments 

现在复制~/.bashrc下面的函数。 它会给你你想要的东西, 而且它将保留cat的属性,否则没有使用cat

 catc(){ cat "$@" > /tmp/.tmp pygmentize -g /tmp/.tmp rm /tmp/.tmp } 

~/.bashrc为,

 . ~/.bashrc 

它会给出彩色输出,

 catc  

它也会与颜色连接,

 catc   ...  

一个人可以看看ccat 。

它为输出文件添加了语法高亮。

其他答案涵盖了为什么cat无法做到这一点。 虽然使用lesspipe.sh可以少花钱多办事 。