Lel*_*uge 186 unix color-scheme syntax-highlighting
有没有上色的输出的方法cat,该方法grep一样.
因为grep,在大多数控制台中,它会显示一个彩色输出,突出显示搜索到的关键字.否则,您可以通过调用来强制它grep --color
是否有一种通用方法根据您的个人选择为任何程序的输出着色.
据我所知,程序本身不对颜色负责.这是壳.
我在FreeBSD 5.2.1中使用默认的shell,看起来它自从epoch以来从未见过颜色.
bue*_*rgi 385
我建议pygmentize从python包python-pygments.您可能希望定义以下方便的别名(除非您使用ccatccrypt包).
alias ccat='pygmentize -g'
Run Code Online (Sandbox Code Playgroud)

如果你想要行号:
alias ccat='pygmentize -g -O style=colorful,linenos=1'
Run Code Online (Sandbox Code Playgroud)
Shu*_*ary 107
pygmentize是好的.我有一个别名:
alias c='pygmentize -g'
Run Code Online (Sandbox Code Playgroud)
但突出显示是另一个广泛可用的选择
alias cats='highlight -O ansi --force'
Run Code Online (Sandbox Code Playgroud)
您可能需要安装pygments使用:
sudo pip install pygments
sudo easy_install Pygments #for Mac user
Run Code Online (Sandbox Code Playgroud)
以及highlight适用于所有发行版的包装
sudo apt-get install highlight
sudo yum install highlight
Run Code Online (Sandbox Code Playgroud)
我正在为下面的两个镜头添加镜头,以便在突出显示中进行比较
这是pygmentize在行动:

这是highlight:

dan*_*gom 44
从2018年4月下旬开始:
Bat - 具有语法高亮和Git集成的cat(1)克隆.
该项目是一个猫克隆,支持用Rust编写的颜色和自定义.它不仅提供具有多个主题的语法突出显示,还提供Git集成.如文档中所述:
蝙蝠试图实现以下目标:
- 提供美观,高级的语法高亮
- 与Git集成以显示文件修改
- 是(POSIX)猫的直接替代品
- 提供用户友好的命令行界面
不用说,它比pygmentize快得多,并且在面对大文件时不会窒息.
可以在Github存储库中找到源代码和二进制版本 + 安装说明,以及与替代程序的比较.
Soe*_*ner 30
vimcat 是单文件(shell脚本),效果很好:
http://www.vim.org/scripts/script.php?script_id=4325
最后更新时间是2013年12月.提示:您可以强制执行文件类型识别vimcat -c "set ft=<type>".
Cos*_*atu 20
cat语法突出显示只是超出范围.cat不是为了这个.如果您只想让某些文件的整个内容以某种方式着色(整个文件的颜色相同),您可以使用终端转义序列来控制颜色.
这是一个示例脚本,它将根据文件类型选择颜色(您可以使用类似的东西而不是cat直接调用):
#!/bin/bash
fileType="$(file "$1" | grep -o 'text')"
if [ "$fileType" == 'text' ]; then
echo -en "\033[1m"
else
echo -en "\033[31m"
fi
cat $1
echo -en "\033[0m"
Run Code Online (Sandbox Code Playgroud)
上面(在支持那些转义序列的终端上)将任何文本文件打印为"粗体",并将任何二进制文件打印为红色.您可以使用strings而不是cat打印二进制文件,并且可以增强逻辑以使其适合您的需要.
ccp*_*zza 20
有一个彩色版本的cat - ccat.从https://github.com/jingweno/ccat/获取.
它是一个单独的可执行文件,因此要安装它,您可以从https://github.com/jingweno/ccat/releases解压缩操作系统的二进制版本,并将ccat二进制文件复制到/usr/local/bin.
如果你想避免二进制文件,或者你的平台没有二进制文件(例如raspberry pi等),那么你可以从源代码编译,因为你有一个可用的go开发环境(apt install golang在基于debian的linuxes或brew install golangmac上):
go get -u github.com/jingweno/ccat
Run Code Online (Sandbox Code Playgroud)
该
ccat二进制文件将根据你的创建$GOPATH/bin.
brew install ccat
Run Code Online (Sandbox Code Playgroud)
cat要cat使用ccatadd in 替换常规~/.bashrc:
alias cat="ccat $*"
alias cat0="/bin/cat $*" # for cases when you need plain `cat`
Run Code Online (Sandbox Code Playgroud)
ccat在Go中实现,因此它是一个本机二进制文件,其运行速度比基于Python的解决方案快得多,例如pygments,后面的模块pygmentize; 我没有看到cat和之间有任何明显的速度差异ccat.
Has*_*tur 11
source-highlight也许有可能source-highlight 在GNU下找到有趣的发布:一个不同的包highlight.
摘录自apt-cache show source-highlight:
Description-en:将源代码转换为语法高亮显示的文档.
在给定源文件的情况下,该程序生成具有语法突出显示的文档.
它支持超过100种文件格式的语法高亮 ...
对于输出,支持以下格式:HTML,XHTML,LaTeX,Texinfo,ANSI颜色转义序列和DocBook
我做了一些别名(Cat和PCat,见下文),这是他们的输出

你可以在Debian上安装
sudo apt-get install source-highlight
Run Code Online (Sandbox Code Playgroud)
并将其添加为别名,例如在您.bash_aliases的下面的行中.
alias Cat='source-highlight --out-format=esc -o STDOUT -i'
Cat myfile.c # or myfile.xml ...
Run Code Online (Sandbox Code Playgroud)
或者你可以做一个类似的别名(没有-i最后有可能管道)
alias PCat='source-highlight --out-format=esc -o STDOUT '
tail myfile.sh | PCat # Note the absence of the `-i`
Run Code Online (Sandbox Code Playgroud)
其中,它可能从中读取数据的选项man source-highlight中-s这是可能的选择下划线,或力,高亮通过命令行或离开该程序这个义务:
-s, - src-lang = STRING源语言(使用--lang-list获取完整列表). 如果未指定,将从文件扩展名中猜出源语言.
--lang-list列出所有支持的语言和相关的语言定义文件
Ama*_*nut 11
如果你的机器中有vim,最好的方法和最简单的方法是使用程序vimcat附带的vimpager.
git clone git://github.com/rkitover/vimpager
cd vimpager
sudo make install
运行vimcat:
vimcat index.html
据我所知,二进制本身不负责颜色.这是壳.
那不对.终端只解释输出到终端的颜色代码.根据其功能,它可以忽略某些格式/着色代码.
从手册页看起来似乎没有猫支持着色其输出.即使它支持像grep这样的着色它应该在文本文件中着色吗?语法突出显示基础语言所需的知识,这不是像cat这样的简单实用程序的范围.
如果看到突出显示的代码是您的目标,您可以在unix平台上尝试更强大的编辑器,如vim,emacs,gedit等.