如何在Vim的:ls命令中突出显示当前缓冲区

6

我最近发现了在vim中使用缓冲区的方法,我想知道是否有可能在显示:ls结果的窗口中高亮显示当前缓冲区的行?

我知道当前缓冲区是用%标记的,但高亮显示行会更容易看到。

任何vim大师能帮助我吗?


我认为你需要修改vim源代码。 - Kent
这听起来对我来说有点太难了 :/ 可以用插件或更简单的技巧完成吗? - statox
如果你只对缓冲区的概述感兴趣,并且你不是那些同时打开100个缓冲区的人之一,那么你可能想看看airline。 - swenzel
@swenzel:谢谢,这看起来很适合我想要的。我已经听说过Airline,但不知道它会显示缓冲区。 - statox
1个回答

4

没有内置的选项,因此您需要直接修改Vim的源代码,或者使用Vimscript编写自定义命令。我不建议这样做。

对于后者,您可以使用:redir捕获内置:ls的输出,将其split()成行,然后在循环中使用:echo每个匹配前导%以检测当前文件,并在该情况下使用:echohl更改高亮组。 cmdalias.vim - 为Vim命令创建别名 可以让您安装新的:LS命令覆盖内置的:ls,但我认为这太繁琐且效果太小。


好的,谢谢你提供标题。确实,这似乎是一个小结果需要大量工作...我有点惊讶看到这个功能不太容易获取:我的意思是vim能够突出显示一行,它能够匹配一些模式,我不可能是唯一一个考虑过这个问题的人,社区里有很多比我更有才华的人。你知道是什么原因阻止了社区去做这件事吗? - statox
是的,这样的补丁会相当简单;但你需要为此创建另一个高亮组、编写文档、测试等。此外,许多 Vim 用户喜欢简洁;过多的颜色会被视为分散注意力。(另一方面,多彩、符号丰富的状态栏也很普遍,所以也有相反的群体存在。) - Ingo Karkat
当然,我明白它不能满足每个人,但正如你所说,有些人喜欢颜色 :) 这可能是我为这个令人惊叹的项目做出第一次贡献的机会。 - statox

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接