首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >语法高亮/着色猫

语法高亮/着色猫
EN

Stack Overflow用户
提问于 2011-10-21 14:47:59
回答 19查看 135.9K关注 0票数 268

是否有一种方法可以对cat的输出进行着色,就像grep那样。

对于grep,它在大多数控制台中显示一个突出显示搜索关键字的彩色输出。否则,您可以通过调用grep --color来强制它,有一种通用的方法可以根据您的个人选择对任何程序的输出进行着色。

据我所知,程序本身并不负责颜色。是贝壳。

我在FreeBSD 5.2.1中使用默认的shell,看起来它从没有见过颜色。

EN

回答 19

Stack Overflow用户

回答已采纳

发布于 2011-10-21 22:03:41

带有语法突出显示的cat根本超出了范围。cat并不是用来实现这个目的的。如果您只想以某种方式对某个文件的整个内容进行着色(整个文件的颜色相同),则可以使用终端转义序列来控制颜色。

下面是一个示例脚本,它将根据文件类型选择颜色(您可以使用类似的内容,而不是直接调用cat ):

代码语言:javascript
复制
#!/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"

以上内容(在支持转义序列的终端上)将将任何文本文件打印为“粗体”,并将任何二进制文件打印为红色。您可以使用strings而不是cat来打印二进制文件,并且可以增强逻辑,使其适合您的需要。

票数 25
EN

Stack Overflow用户

发布于 2013-02-10 16:16:56

我会从python包python-pygments中推荐python-pygments。您可能想要定义以下方便的别名(除非您使用了氪t包中的ccat )。

代码语言:javascript
复制
alias ccat='pygmentize -g'

如果你想要电话号码:

代码语言:javascript
复制
alias ccat='pygmentize -g -O style=colorful,linenos=1'

将上述命令中的一条添加到~/.bash_aliases中以获得永久效果

票数 467
EN

Stack Overflow用户

发布于 2014-12-16 09:38:11

选项:

化脓性很好。我有个化名:

代码语言:javascript
复制
alias c='pygmentize -g'

但是突出显示是另一个广泛可用的替代方案

代码语言:javascript
复制
alias cats='highlight -O ansi --force'

安装:

您可能必须使用以下其中之一安装pygments

代码语言:javascript
复制
sudo apt install python-pygments
sudo pip install pygments
sudo easy_install Pygments #for Mac user

对于highlight包,它在所有发行版上都很容易获得。

代码语言:javascript
复制
sudo apt install highlight
sudo yum install highlight

在行动中:

我把下面两张照片贴在一起,以便在高光方面进行比较。

下面是pygmentize的实际操作:

这是highlight

票数 152
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7851134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档