有时我很快想从命令行查看文件的内容。我当然会为此使用cat
它,但是它通常是Python,Java或简单HTML的源文件。对于这些文件,如果cat
可以给文件加上一些颜色标记,将很方便,这样阅读起来就更加容易。
可以cat
做这样的事情吗?
cat -v
有害的东西。
有时我很快想从命令行查看文件的内容。我当然会为此使用cat
它,但是它通常是Python,Java或简单HTML的源文件。对于这些文件,如果cat
可以给文件加上一些颜色标记,将很方便,这样阅读起来就更加容易。
可以cat
做这样的事情吗?
cat -v
有害的东西。
Answers:
cat
无法做到这一点。但是,也许pygments可以在这里为您提供帮助。这是一个python脚本,可以通过apt-get安装
sudo apt-get install python-pygments
或通过easy_install轻松下载并安装。
它支持多种源代码语言和标记语言
它由
pygmentize -g <filename>
pygmentize -g <filename>
,此-g
开关对于不使用lexer处理文件很重要。例如,如果您尝试/etc/fstab
不打开-g
它就会失败。
pygmentize --help
如果-g
通过,则尝试从文件内容中猜测词法分析器,如果失败,则以纯文本形式通过(对于stdin可以使用)。
funced cat... type pygmentize -g $argv... save..funcsave cat
。
bashrc
补充中: command -v pygmentize >/dev/null 2>&1 && alias cat='pygmentize -g'
不是从cat
本身,但你可以使用像源的HIGHlite 或supercat或亮点
源高亮
给出源文件后,该程序将生成一个带有语法高亮显示的文档。它还提供了C ++高亮库(新版本)(从3.0版开始)。
Source-highlight动态读取源语言规范,因此可以轻松扩展(无需重新编译源代码)以处理新语言。它还动态读取输出格式规范,因此可以轻松扩展(无需重新编译源代码)以处理新的输出格式。这些规范的语法非常简单(请参阅手册)。
关于安装的手册:
有关详细的构建和安装说明,请参阅文件INSTALL。无论如何,如果您习惯于编译源代码附带的Linux软件,则可以按照通常的步骤操作,即,将下载的文件解压缩到目录中,然后:
cd <source code main directory>
./configure
make
make install
超级猫
这是Supercat的主页。Supercat是一个程序,可根据匹配的正则表达式/字符串/字符为文本着色。Supercat支持html输出以及标准ASCII文本。与现有的某些文本着色程序不同,Supercat不需要您必须是程序员才能制定着色规则。
如果您已经为标准文件类型编写了超级猫配置文件,请随时通过“ bug-spc(at)nosredna(dot)net”与我联系,以获得可能包含在超级猫分发中的信息。
或带有一个函数(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
要求: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 <filename>
退出:(如果使用,则:q<Return>
添加<Esc>
第一个vim
),或ZZ
(大写字母z两次)。
程序员的文本编辑器vim
已具备您所需要的一切,并且可能已经成为系统的一部分。
vim
使用view
或激活了只读模式vim -R
。如果您只需要查看标记的文件,就足够了。
简单易用,可导航,随处可见。无需为安装新软件或编写bash脚本而烦恼。
vim
或view
,您只需将它提供给file :,因此与view file.py
没什么区别cat
。当然,您需要关闭它,但实际上,:q<Return>
或者ZZ
不是困难的任务。
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 <filename>
它也将与颜色串联在一起,
catc <file1> <file2> ... <filen>
pygmentize?
我使用表单命令打开它xterm -e "pygmentize -g <filename>"
,发现滚动的唯一方法是使用滚动条。我尝试将输出管道到,less
但是导致了垃圾输出。
pygmentize
。创建一个bash函数lessc
,如下所示:lessc () { pygmentize -gf terminal "$1" | less -R }
其他答案包括为何cat
无法做到这一点。虽然可以使用lesspipe.sh减少
花费。
无需安装第三方软件包,您只需使用gedit
语法突出显示即可快速查看文件。例如,复制上方的地址栏,然后粘贴到您的终端中:
gedit https://askubuntu.com/questions/405960/can-cat-show-files-using-code-markup-in-colors
您将在HTML中以格式化的颜色看到此问题:
gedit
导航键cat
不需要关闭击键的窗口。