Answers:
在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
或w3m
作为GNU一样的pager(或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
如果您less
更一般地对颜色感兴趣,则可能要看一下lesspipe.sh
。参见,例如,http://freecode.com/projects/lesspipe。
lesspipe.sh是less的手册页中所述的pager less的输入过滤器。该脚本在兼容ksh的外壳程序(例如bash,zsh)下运行,使您可以减少查看二进制内容,压缩文件,归档文件和归档文件中包含的文件的时间。
与文本编辑器类似,它还将对shell脚本,perl脚本等进行着色,但不使用任何“预处理”程序进行着色。
lesspipe.sh
是我在发布问题之前想要记住的东西……
您可以使用e2ansi软件包,该软件包为诸如more
和的寻呼机提供语法突出显示支持less
。
该软件包使用所有文本编辑器Emacs的母亲来执行实际的语法突出显示。此外,还执行了Emacs通常执行的所有其他转换(如解压缩文件)。
以下是使用less
和
查看文件的结果e2ansi
:
该软件包提供了一个命令行工具e2ansi-cat
,该工具以批处理方式启动Emacs,打开文件,语法突出显示它们,并使用ANSI序列呈现结果。
您可以less
通过将以下变量设置为(例如,初始化文件的位置可能不同)将其集成到其中:
export "LESSOPEN=||-/usr/local/emacs --batch -Q -l ~/.emacs -l bin/e2ansi-cat %s"
export "LESS=-r"
alias "more=less -X -E"
在上述配置中,less
还原原始终端窗口内容,而more
在提示后仅输出新内容。
注意:如果您使用的旧版本less
,则它可能不支持
||
或-
语法,在这种情况下,您可能需要使用
LESSOPEN=|/usr/local/emacs ...
。
less
在管道中使用中的“-”字符LESSOPEN
表示在将文本传递到时也应使用输入过滤器less
。在这种情况下,Emacs只能依靠文本本身(而不是文件名)。幸运的是,Emacs为此提供了一个系统。此外,提供的文件文件还
e2ansi-magic.el
设置了其他文件类型。例如:
e2ansi
,在中查看文件时主题的颜色会保留less
。您可以从多种来源中选择合适的颜色主题,也可以自行设计。less
(减去ANSI序列格式和终端窗口中的限制)。less
将利用Emacs执行自动转换的功能,例如解压缩文件。实际上,您可以教Emacs执行任何类型的转换,例如使用外部工具将二进制文件自动转换为人类可读形式。/USER@HOST:FILENAME
。这称为语法突出显示。
给定源文件时,GNU Source-highlight会生成带有语法高亮显示的文档。
我使用lessfilter
下面的脚本,也可以less
像下面这样自动调用它:
export LESSOPEN="| /path/to/lessfilter %s"
export LESS=' -R '
我找到了这篇文章,并以这种方式开始这样做:
#!/bin/sh
file -b -L "$1" | grep -q text &&
/usr/share/source-highlight/src-hilite-lesspipe.sh "$1"
(src-hilite-lesspipe.sh
附带source-highlight
但并非所有发行版都包含)
export
定义了环境变量,而不是别名。该命令 less
使用环境变量中的标志LESS
,因此您的答案需要一些工作。