【问题标题】:Use Vim to "colourize" files or input streams使用 Vim 为文件或输入流“着色”
【发布时间】:2011-12-24 20:01:46
【问题描述】:

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

cat foobar.rb

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

我不确定这是否可行,但我认为如果我可以使用 Vim 来做这件事会很好。

我真的只想要彩色关键字,而 Vim 有完美的颜色定义。

所以我认为结合起来会很棒。

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

【问题讨论】:

  • 您只是想将文件转储到控制台,还是想要例如less(例如,可以上下翻页)?

标签: vim


【解决方案1】:

一种方法是使用诸如Pygments 之类的库,它是一个通用语法高亮器。您可以编写一个名为 ccat 的包装器或将语法高亮应用到输入文件并写入标准输出的东西。

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

ccat file.rb | less -R

但在这一点上,您几乎可以使用view 的功能。

【讨论】:

    【解决方案2】:

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

       view      Start  in read-only mode.  You will be protected from writing
                 the files.  Can also be done with the "-R" argument.
    
       gvim gview
                 The GUI version.  Starts a new window.  Can also be done with
                 the "-g" argument.
    
       evim eview
                 The GUI version in easy mode.  Starts a new window.  Can also
                 be done with the "-y" argument.
    
       rvim rview rgvim rgview
                 Like the above, but with restrictions.  It will not be possi-
                 ble  to  start  shell  commands, or suspend Vim.  Can also be
                 done with the "-Z" argument.
    

    我总是在安装了 vim 的系统上看到视图。

    【讨论】:

    • 哦,我明白了!以前从未听说过。
    【解决方案3】:

    最接近的是vim自带的less脚本:

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

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

    现在,这并不是您想要的,因为它的行为类似于less,因为您必须按下键才能使其向下滚动或完成。但是,它们比通常的 vim 更简短。例如 space 向下滚动;和 q 退出(不是:q)。

    你想要一个类似cat 的版本;我也是。不过好像没有。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-27
      • 2021-12-03
      • 2018-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-27
      • 2014-07-22
      相关资源
      最近更新 更多