![终端中的语法突出显示](https://linux22.com/image/84842/%E7%BB%88%E7%AB%AF%E4%B8%AD%E7%9A%84%E8%AF%AD%E6%B3%95%E7%AA%81%E5%87%BA%E6%98%BE%E7%A4%BA.png)
许多面向编程的编辑器都会对源代码进行着色。是否有一个命令可以将源代码着色以便在终端中查看?
我可以使用emacs -nw
(在终端中打开而不是弹出一个新窗口)打开一个文件,但我正在寻找类似的东西less
(或者和 less -R
,它在其输入中传递颜色转义序列)。
答案1
和highlight
在支持相同颜色转义序列的终端上xterm
:
highlight -O xterm256 your-file | less -R
rougify your-file | less -R
pygmentize your-file | less -R
source-highlight -f esc256 -i your-file | less -R
您还可以在附带的脚本vim
的帮助下用作寻呼机(有关详细信息,请参阅内部):macros/less.sh
vim
:h less
vim
在我的系统上:
sh /usr/share/vim/vim74/macros/less.sh your-file
或者您可以使用任何支持 HTML 输出的语法荧光笔,并使用elinks
orw3m
作为分页器(或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
我建议看一下这一页