使用较少的语法高亮,使用词法分析器的麻烦

我已经安装了python-pygments并使用它来进行语法高亮,如mankoff所描述的那样,我在.bashrc了一个函数

  cless () { pygmentize -f terminal "$1" | less -R } 

它使用less来启用语法高亮。 但是当我要打开像/etc/fstab/etc/apt/apt.conf这样的文件时,会出错

 Error: no lexer for filename '/etc/apt/apt.conf' found 

我在这个联机帮助页找到了用-l显示pygmentize lexer的选项。 但是这些文件的适当词法分析器是什么? 以及如何使用它?

埋葬在pygmentize --help

如果传递了-g,则尝试从文件内容中猜测词法分析器,或者如果失败则以纯文本forms传递(这可以用于stdin)。

只需将您的代码更改为:

 cless () { pygmentize -gf terminal "$1" | less -R } 

要在Ubuntu / Debian上首先安装语法高亮显示

 apt install source-highlight 

那么你可能不想将这两个环境变量添加到~/.bashrc

 export LESSOPEN="| /usr/bin/src-hilite-lesspipe.sh %s" export LESS=' -R ' 

另请注意v on less open on default editor( 由select-editor命令定义 )可能有SH的文件。 这里如何为 nano的很多文件添加兼容性。

参考

  • gnu.org – 2.7使用less-highlight
  • bash – 更少的命令和语法突出显示 – Unix和Linux Stack Exchange
  • 如何通过Less – 超级用户突出显示语法