Answers:
一个GNU包,source-highlight,似乎可以解决问题(尽管不使用cat -正如John T指出的,这在cat上是不可能的)。它可以通过Ubuntu上的apt-get获得,并且需要Boost regex库。检查您的包裹管理器,看看两者是否都可用,否则您可以从网上获取它们。我认为,先前链接的GNU页面具有指向Boost的链接。
安装后,我在路径中创建了一个名为ccat的新脚本。该脚本如下所示:
#!/bin/bash
src-hilite-lesspipe.sh $1
没什么,只是简化源代码突出显示中包含的较少脚本。以这种方式调用时,它的行为就像猫。
不过,所包含的较少脚本也是一个不错的脚本。我只是将以下内容添加到.bashrc中:
export LESSOPEN="| /path/to/src-hilite-lesspipe.sh %s"
export LESS=' -R '
该脚本也包含在源高亮的在线手册中。
我想如果您想完全忽略cat的话,可以给cat命名为src-hilite-lesspipe.sh $ 1,但是这可能不是很理想。
$1
:) 结尾的单行bash脚本。
brew install source-highlight
。无法着色yaml :(
要以类似方式输出语法突出显示的代码cat
,我ccat
按照http://scott.sherrillmix.com/blog/programmer/syntax-highlighting-in-terminal/上的说明创建了一个命令。
#!/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
为了输出语法突出显示的代码,例如less
,我用vim作为替代。
alias less='/usr/share/vim/vim72/macros/less.sh'
.functions
中colorize(){...}
为了解决这个问题,我使用了Highlight。我做了一个尝试用语法高亮显示文件的功能,如果失败,它会退回到简单地使用cat打印文件的方式。您可以将语法突出显示主题更改为所需的任何内容。
function hl { # Overrides the cat command to use syntax highlighting
# Highlight with 'moria' theme to terminal, and suppress errors
highlight $1 -s moria -O xterm256 2> /dev/null
if (($? != 0)); then # If the command had errors
cat $1 # Just cat the file out instead
fi
}
如果您使用的是Mac,并且使用的是Homebrew(强烈建议!),则可以通过运行来安装Highlight brew install highlight
。否则,它应该在大多数其他软件包管理器上可用,并且可以在此处下载。
我还做了一个函数来打印出一个语法突出显示为html的文件,并在浏览器中将其打开进行打印(取决于open
OS X 上的命令):
function hlprint {
# Print with line numbers and 'moria' theme
highlight $1 -l -o print.html -s moria
open print.html # Open in browser
sleep 5 # Give the browser time to open
rm print.html highlight.css # Remove output files
}
请享用!
bat
ostechnix.com/...