使用Vim“colourize”文件或输入流

时间:2011-12-24 20:01:47

标签: vim

这可能是一个奇怪的问题,但仍然存在。我使用cat以bash(KDE Konsole)显示文件,

cat foobar.rb

现在,我想根据你在Vim中启动foobar.rb时得到的内容,使用Vim对foobar.rb文件进行着色。编辑:但仅用于显示目的,在终端上。

我不确定这是可能的,但我认为如果我可以使用Vim那将是很好的。

我真的只想要着色的关键词,Vim有完美的色彩定义。

所以我认为结合这个会很棒。

这是否可以在Vim开箱即用?

3 个答案:

答案 0 :(得分:2)

一种方法是使用诸如Pygments之类的库,这是一种通用语法高亮显示器。您可以编写一个名为ccat的包装器,或者将语法突出显示应用于输入文件并写入stdout的东西。

如果要在突出显示的文件中向上和向下翻页,可以使用less-R开关,将控制字符直接传递到终端,保留颜色。所以:

ccat file.rb | less -R

但在那时,你几乎完全具备view的能力。

答案 1 :(得分:2)

我不确定我是否正确理解了您的问题,但如果您只是在寻找能够为您提供输入文件(如cat)的只读视图但使用彩色关键字的命令,请使用{{1 }}。 view是以只读模式启动view的另一种方法,因此您可以使用所有语法突出显示功能。从vim手册页:

vim

我一直看到有关安装了vim的系统的视图。

答案 2 :(得分:1)

最近的是vim附带的less脚本:

cat myfile | vim -u /usr/share/vim/vim72/macros/less.vim -

注意vim的-参数。您可能需要将vim72更改为您的版本(如果您将其安装在其他位置,则可以更改整个路径)

现在,这并不是你想要的,因为它的行为是less - 就像你需要按键使其向下滚动或完成一样。但是,它们比通常的vim更简洁。例如, space 向下滚动;和 q 退出(不是:q)。

你想要一个类似cat的版本;我也是。但似乎没有一个。

编辑呃,还有一个vimpager项目,其中包含vimcat - 正是您想要的。但它没有vim,我还没有尝试过。