Jes*_*sen 159 less syntax-highlighting
有没有办法用语法突出显示我在 Less 中看到的文件?
实际上我正在使用此命令打开一个 xml 文件(有时是一系列文件)
less htmleditors/htmleditors_config.xml
Run Code Online (Sandbox Code Playgroud)
或者
less [multiple files]
Run Code Online (Sandbox Code Playgroud)
我想留在 Less(为了更好地学习该程序并使用我的 :n 和 :p 知识进行下一个/上一个导航)
但它也需要某种基本的语法突出显示——至少以不同的方式显示注释。你知道有什么方法吗?
bra*_*ter 144
您可以使用GNU的源亮点,如在这里(路径可能会有所不同,见下文):
export LESSOPEN="| /usr/bin/src-hilite-lesspipe.sh %s"
export LESS=' -R '
Run Code Online (Sandbox Code Playgroud)
从 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
Run Code Online (Sandbox Code Playgroud)软呢帽:
sudo dnf install source-highlight
rpm -ql source-highlight | grep lesspipe
# /usr/bin/source-highlight/src-hilite-lesspipe.sh
Run Code Online (Sandbox Code Playgroud)小智 124
前两个答案中最好的一个:您可以通过按 来从less 中调用系统默认编辑器v。
小智 37
pygmentize somefile.ex | less -R
Run Code Online (Sandbox Code Playgroud)
或者
function cless () {
pygmentize -f terminal "$1" | less -R
}
Run Code Online (Sandbox Code Playgroud)
Pygmentize 是Pygments Python 语法 highliter 的一部分。
huy*_*uyz 21
正如其他人所说,您可以使用 vim 的强大功能。但重要的是,您无需学习如何使用 vi/vim 就可以做到这一点。
Vim 带有一个less.vim脚本,它可以很好地替代 less,具有全彩色语法突出显示。它使用less键绑定(只需点击“q”即可退出)。
它有一些问题,所以我改进了它。这是我的博客文章中的屏幕截图(存档于 2013-04-09;原始抛出 503):
six*_*ude 16
我认为您应该使用文本编辑器。我自己喜欢vim。这将在查看文件时为您提供强大的功能,然后当您想要编辑它们时,您将已经了解基础知识。
以下是使用文本编辑器(特别是 vim)的一些优点:
要以只读模式打开文件,请使用以下命令:
vim -R <file name>
Run Code Online (Sandbox Code Playgroud)
这是一个基本的导航指南:
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
Run Code Online (Sandbox Code Playgroud)
以下是更多信息的链接:
http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html
回顾一下,如果您将使用 unix vim 是非常基础的。我听说学习vim就像学习打字。它是您可以学习的下一个最有用的编程工具。
(为了避免编辑器战争,您也可以查看 emacs 或其他编辑器,但我个人更喜欢 vim)
Lor*_*nzo 10
我也在寻找这个并使用 Vim 找到了另一个解决方案:http : //ubuntu-tutorials.com/2008/07/14/use-vim-as-a-syntax-highlighting-pager/
这篇文章相当陈旧,所以现在在更新的发行版中发布了 vim 7.2,并且 .bashrc 将显示: alias vless='vim -u /usr/share/vim/vim72/macros/less.vim'
小智 8
我很高兴地宣布一个新包e2ansi,它为more和 等寻呼机提供语法高亮支持less。
该包使用所有文本编辑器之母Emacs来执行实际的语法突出显示。作为一个额外的好处,通常由 Emacs 执行的所有其他转换——比如解压缩文件——也会被执行。
以下是使用lessand
查看文件的结果e2ansi:

该软件包提供了一个命令行工具e2ansi-cat,它以批处理模式启动 Emacs,打开文件,语法高亮它们,并使用 ANSI 序列呈现结果。
例如,您可以less通过将以下变量设置为(您的 init 文件的位置可能会有所不同)来将其集成到其中:
export "LESSOPEN=||-/usr/local/emacs --batch -Q -l ~/.emacs -l bin/e2ansi-cat %s"
export "LESS=-r"
alias "more=less -X -E"
Run Code Online (Sandbox Code Playgroud)
在上面的配置中,less恢复原始终端窗口内容,而more只是在提示后输出新内容。
注意:如果您使用旧版本的less,它可能不支持
||或-语法,在这种情况下,您可能需要简单地使用
LESSOPEN=|/usr/local/emacs ...。
less在管道中使用in 中的“-”字符LESSOPEN表示在将文本传送到less. 在这种情况下,Emacs 只能依赖文本本身(而不是文件名)。幸运的是,Emacs 为此提供了一个系统。此外,提供的文件文件
e2ansi-magic.el设置了其他文件类型。例如:

e2ansi,主题中的颜色在查看less. 您可以从多种来源中选择合适的颜色主题,也可以自行设计。less(减去 ANSI 序列格式和终端窗口的限制)。less将利用执行自动转换的 Emacs 功能,例如解压缩文件。事实上,您可以教 Emacs 执行任何类型的转换,例如使用外部工具自动将二进制文件转换为人类可读的格式。/USER@HOST:FILENAME.在 MS Windows 上,控制台本身不支持 ANSI 序列。幸运的是,less应用程序能够呈现它们。我不知道lessMS Windows的任何当代二进制分发版,并且提供的构建文件很难使用。幸运的是,less使用CMake很容易构建,有关详细信息,请参阅此文本。
OS X 分发了一个古老版本的less. 幸运的是,直接从源代码构建现代版本很容易。
小智 7
如果您安装了GNU Source-highlight,您可以使用以下命令来突出显示单个文件的语法:
$ src-hilite-lesspipe.sh yourfile.xml | less -R
Run Code Online (Sandbox Code Playgroud)