如何通过 Less 进行语法高亮

如何通过 Less 进行语法高亮

有没有办法对我在 Less 中看到的文件进行语法高亮?

实际上我正在使用此命令打开一个 xml 文件(有时是一系列文件)

less htmleditors/htmleditors_config.xml

或者

less [multiple files]

我想继续使用 Less(以便更好地学习该程序并利用我对 :n 和 :p 的了解进行下一个/上一个导航)

但它也需要某种基本的语法突出显示 - 至少以不同的方式显示注释。你知道有什么办法吗?

答案1

您可以使用GNU 的源代码突出显示, 如图所示这里(路径可能不同,见下文):

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

从 Debian Stretch 和 Fedora 25 开始,包名称和脚本路径有所不同

  • Debian:

    sudo apt install libsource-highlight-common source-highlight
    dpkg -L libsource-highlight-common | grep lesspipe
    # /usr/share/source-highlight/src-hilite-lesspipe.sh
    
  • Fedora:

    sudo dnf install source-highlight
    rpm -ql source-highlight | grep lesspipe
    # /usr/bin/source-highlight/src-hilite-lesspipe.sh
    

答案2

先前两个答案中最好的一个:您可以通过按 从 less 中调用系统默认编辑器v

答案3

pygmentize somefile.ex | less -R

或者

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

Pygmentize 是Pygments Python 语法精简版

答案4

我认为你应该使用文本编辑器。我自己喜欢 vim。它会在查看文件时给你带来很多功能,然后当你想编辑它们时,你已经掌握了基础知识。

以下是使用文本编辑器(特别是 vim)的一些优点:

  • 语法高亮
  • 强大的运动命令
  • 寻找
  • 跳转到文件中的特定位置(称为标记)
  • 折叠(当你只想查看函数 stubbs 时很有用)

要以只读模式打开文件,请使用以下命令:

vim -R <file name>

以下是基本的导航指南:

j - move down one line
k - move up one line
h - left one char
l -right one char

ctrl-f - forward one page
ctrl-b - back one page

/<something> - search for something
n - next of whatever you searched for
N - next (search backwards) of whatever you searched for

:q - quit
:q! - quit without saving
:w - save

以下链接提供了更多信息:

http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html

简单回顾一下,如果你要使用 unix vim,它就是非常基础的。我听说学习 vim 就像学习打字一样。它是编程中你可以学习的第二有用的工具。

(为了避免编辑器之争,你也可以研究一下 emacs 或其他编辑器,不过我亲自更喜欢 vim)

相关内容