终端中的语法突出显示

终端中的语法突出显示

许多面向编程的编辑器都会对源代码进行着色。是否有一个命令可以将源代码着色以便在终端中查看?

我可以使用emacs -nw(在终端中打开而不是弹出一个新窗口)打开一个文件,但我正在寻找类似的东西less(或者 less -R,它在其输入中传递颜色转义序列)。

答案1

highlight在支持相同颜色转义序列的终端上xterm:

highlight -O xterm256 your-file | less -R

ruby-rouge:

rougify your-file | less -R

python-pygments:

pygmentize your-file | less -R

GNUsource-highlight:

source-highlight -f esc256 -i your-file | less -R

您还可以在附带的脚本vim的帮助下用作寻呼机(有关详细信息,请参阅内部):macros/less.shvim:h lessvim

在我的系统上:

sh /usr/share/vim/vim74/macros/less.sh your-file

或者您可以使用任何支持 HTML 输出的语法荧光笔,并使用elinksorw3m作为分页器(或elinks -dump -dump-color-mode 3 | less -R),例如GNUsource-highlight:

source-highlight -o STDOUT -i your-file | elinks -dump -dump-color-mode 3 | less -R

答案2

为此,我使用 GNUsource-highlight结合使用。less -R将以下行添加到 shell 的初始化文件中(~/.bashrc例如):

cless(){
 LESSOPEN='| source-highlight --failsafe --out-format=esc256 -o STDOUT -i %s 2>/dev/null ' less -R "$@"
}

它应该根据所使用的语言自动为源代码着色,如果不能,它将less直接在其输入上启动。

答案3

如果您对更广泛的颜色感兴趣less,您可能想看看lesspipe.sh。例如,参见http://freecode.com/projects/lesspipe

lesspipe.sh 是 pager less 的输入过滤器,如 less 的手册页中所述。该脚本在与 ksh 兼容的 shell(例如 bash、zsh)下运行,并允许您使用 less 来查看具有二进制内容的文件、压缩文件、存档以及存档中包含的文件。

它还可以像文本编辑器一样对 shell 脚本、perl 脚本等进行着色,但不使用任何“预处理”程序来进行着色。

答案4

我喜欢简单,并且使用 Nano 文本编辑器,在这种情况下,我通常按以下步骤操作:

检查女巫语法高亮是否可用: ls -la /usr/share/nano/

使用以下命令将其包含在我的 nanorc 文件中,或者手动执行

echo 'include /usr/share/nano/sh.nanorc' >> ~/.nanorc

关于less我建议看一下这一页

相关内容