较少的命令和语法突出显示


43

我需要使用less command与语法高亮vim的命令pythonCbash等多国语言。

如何根据vim颜色应用语法突出显示颜色less command

Answers:


35

的语法高亮显示less在大多数* nix系统上都可以正常工作。

apt install source-highlight
export LESSOPEN="| /usr/share/source-highlight/src-hilite-lesspipe.sh %s"
export LESS=' -R '

在基于Fedora / RedHat的发行版上,请/usr/bin/src-hilite-lesspipe.sh改用。

即使在Cygwin上,也可以通过对Shell脚本路径进行细微调整并使用apt-cyg代替来安装apt

但是,使用此方法会大大减慢大文件的浏览速度。我建议使用alias这种方式仅LESSOPEN在需要时实现上述导出,如下所示:

alias lessh='LESSOPEN="| /usr/bin/src-hilite-lesspipe.sh %s" less -M '

-M标记还方便显示文件名和行号。

还记得将脚本复制到您的bin路径中:

cp /usr/share/source-highlight/src-hilite-lesspipe.sh /usr/bin/src-hilite-lesspipe.sh

更新时间:2019-07-24

显然,在较新的Cygwin安装中,您的路径中包含以下文件:

source-highlight.exe
source-highlight-esc.sh
source-highlight-settings.exe

因此,现在您还需要执行source-highlight-settings.exe,将添加配置文件:
$HOME/.source-highlight/source-highlight.conf


别名“ lessh”对我不起作用。在osx上运行bash。叹。
Scott Biggs

这是一个完全不同的问题,很可能是由于OSX使用了不同的Shell和环境选项,这可能以不同方式影响单引号和双引号的解释。您可以使用shopt -p和进行检查和设置set
not2qubit 2015年

1
这在OSX上对我brew install source-highlightalias lessh='LESSOPEN="| src-hilite-lesspipe.sh %s" less -R '
有用

40

less 不支持语法突出显示。

vim,就像所有vi克隆一样,都有一个只读模式称为view,您可以用来查看文件。它支持vim的所有功能,包括语法突出显示。

例如

view filename.py

view和之间的主要区别在于vi,视图不会通过创建.swp文件来“锁定”正在查看的文件。


如果您的view command意思是radare package,它不是只读的
PersianGulf

4
嗯,我的view命令似乎不支持语法突出显示。我试过:syntax enable:syntax on,但我总是得到syntax: Not an editor command。不过,我vim支持突出显示。
菲利克斯(Felix)2013年

@felix-您是否有另一个vi喜欢nvielvis已安装?/usr/bin/view在我的debian系统上检查您的-是一个符号链接,/etc/alternatives/view而该符号链接又是的符号链接/usr/bin/vim.basic
cas 2013年

1
嗯,在我的情况下,它是的符号链接/usr/bin/ex,奇怪的是,它是由vi程序包拥有的。
Felix 2013年

2
我可以肯定地说@Felix什么,上arch linux view是一个符号链接/usr/bin/excore/vi包。
x-yuri

13

less不能教他们突出语法元素,但是Vim可以用作寻呼机,即的替代品less。有更多高级插件,但基本脚本实际上随Vim($VIMRUNTIME/macros/less.sh)一起提供。有关完整信息,请参见Vim Tips Wiki上的将vim用作语法突出显示的寻呼机


2
我感到惊讶的是,人们甚至在发布错误答案之前都没有去谷歌打扰……
not2qubit 2014年

1
@ user1147688:如果您仔细阅读Felix的回答,那么GNU source-highlight是一个外部程序,并且更少的集成非常松散。less突出显示并不是这样;但是Vim确实内置了此功能。
Ingo Karkat 2014年

对于“如何根据Vim颜色以更少的命令应用语法突出显示颜色?”这一问题,答案“通过使用source-highlight”似乎比“使用vim”更正确。
扎诺2015年

1
+1,但我确定这些评论想说什么-无法判断它们是肯定的还是否定的(“ ...在发布错误答案之前,Google” ?、“安装xyz比仅使用xyz更正确vim”?)。这个答案显然是“最正确的答案”。基本上,OP不知道vim的此功能存在,并且此答案使OP知道它存在。奥卡姆的剃须刀ftw。只能通过显示一个示例来改善答案,例如,$ diff file1.c file2.c | /usr/share/vim/vim74/macros/less.sh
michael

11

我倾向于不同意Ingo,less 可以讲授语法。在SuperUser上查看此答案。基本上,您必须安装GNU的source-highlight(在所有主要的发行版软件包存储库中都可用),然后将以下内容添加到您的.bashrc(或.bash_profile拥有的内容)中:

export LESSOPEN="| /path/to/src-hilite-lesspipe.sh %s"
export LESS=" -R "

但是,请注意,source-highlight它不如vim的荧光笔功能强大。使用最适合您的方法。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.