ale*_*xis 50 colors terminal syntax-highlighting
许多面向编程的编辑器都会对源代码进行着色。是否有一个命令可以为在终端中查看的源代码着色?
我可以打开一个文件emacs -nw
(它在终端中打开而不是弹出一个新窗口),但我正在寻找类似的东西less
(或者可以使用 less -R
,它在输入中通过颜色转义序列)。
Sté*_*las 73
在highlight
支持与以下相同颜色转义序列的终端上xterm
:
highlight -O xterm256 your-file | less -R
Run Code Online (Sandbox Code Playgroud)
rougify your-file | less -R
Run Code Online (Sandbox Code Playgroud)
pygmentize your-file | less -R
Run Code Online (Sandbox Code Playgroud)
source-highlight -f esc256 -i your-file | less -R
Run Code Online (Sandbox Code Playgroud)
您还可以vim
在macros/less.sh
随附的脚本的帮助下用作寻呼机vim
(有关详细信息,请参见:h less
内文vim
):
在我的系统上:
sh /usr/share/vim/vim74/macros/less.sh your-file
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用任何支持 HTML 输出的语法高亮器,并像GNU一样使用elinks
或w3m
作为寻呼机(或elinks -dump -dump-color-mode 3 | less -R
):source-highlight
source-highlight -o STDOUT -i your-file | elinks -dump -dump-color-mode 3 | less -R
Run Code Online (Sandbox Code Playgroud)
ter*_*don 14
为此,我将 GNUsource-highlight
与GNU结合使用less -R
。将以下行添加到您的 shell 的初始化文件(~/.bashrc
例如):
cless(){
LESSOPEN='| source-highlight --failsafe --out-format=esc256 -o STDOUT -i %s 2>/dev/null ' less -R "$@"
}
Run Code Online (Sandbox Code Playgroud)
这应该根据使用的语言自动为源代码着色,如果不能,它将less
直接在其输入上启动。
小智 6
如果您对less
更普遍的颜色感兴趣,您可能需要查看lesspipe.sh
. 例如,参见http://freecode.com/projects/lesspipe。
lesspipe.sh 是 less 的寻呼机的输入过滤器,如 less 的手册页所述。该脚本在与 ksh 兼容的 shell(例如 bash、zsh)下运行,并允许您使用 less 来查看包含二进制内容的文件、压缩文件、存档和存档中包含的文件。
它还可以为 shell 脚本、perl 脚本等着色,类似于文本编辑器,但不使用任何“预处理”程序来进行着色。