`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 view
或man vim
基本用法: view
退出:: :q
(如果使用vim
首先添加
)或ZZ
(大写z两次)。
程序员的文本编辑器vim
已经拥有了你所需要的一切,并且很可能已经成为你系统的一部分。
vim
具有使用view
或vim -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可以少花钱多办事 。