有没有让猫用颜色输出的选项?


Answers:


18

一个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,但是这可能不是很理想。


4
我个人更喜欢别名而不是以$1:) 结尾的单行bash脚本。
mgalgs 2011年

是的,mitch_feaster,您发现了。:]
rgm 2011年

2
也可以在Mac上使用Mac brew install source-highlight。无法着色yaml :(
Sairam

9

要以类似方式输出语法突出显示的代码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'

如何安装pygmentize:easy_install --install-dir $ SOMEDIR Pygments
psihodelia 2013年

我喜欢这种便携式解决方案。我将此脚本作为函数添加到bash .functionscolorize(){...}
guneysus 2013年

3

为了解决这个问题,我使用了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的文件,并在浏览器中将其打开进行打印(取决于openOS 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
}

请享用!


1

不,猫没有语法突出显示功能。如果您想查看带有语法高亮显示的源代码,请将其弹出到vim或您选择的编辑器中(带有语法高亮显示)。这样,如果输出是长文件,您甚至可以使用Ctrl+ F(向前)和Ctrl+ B(向后)翻页输出。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.