如何将突出显示的源代码输出到文件中以在vim外使用


9

在我的工作场所中,我想介绍我为解决我们遇到的一些问题而开发的自定义语言。为了简化开发,我为此特定语言创建了自己的vim语法文件。

现在,我需要将其呈现在另一台没有该语法文件的计算机上。就我所知,它甚至可能没有安装vim(但我对此表示怀疑)。

如果我能使less -r一个文件获得与我自己的计算机上相同的语法突出显示,那将是完美的。

但是,我不知道如何在保留颜色的同时复制和粘贴(在Debian上的gnome终端中),或者如何从vim中以语法高亮显示文件作为原始控制字符。我对从vim中找到解决方案更有信心,但是我不知道该怎么做。

您是否知道以其他方式将打开的文件的语法突出显示为ANSI raw-control-chars的方式输出到另一个文件中?

Answers:


13

您可以使用:TOhtmlVim附带的命令来创建(突出显示的语法)缓冲区(或其一部分)的HTML表示。然后,您对目标系统的唯一要求就是使用浏览器来显示捕获的文件。有关:help :TOhtml详细信息,请参见。

如果您坚持要输出ANSI转义序列,则可以修改插件以实现此目的,但是我想这将是一项不小的努力。


3
哦,我的上帝!太完美了,我希望我能多次提出您的答复。
DainDwarf 2015年

2

程序vimpager包含一个名为“ vimcat”的脚本。它可以输出将vim语法高亮转换为ansi转义码的文件。

(其他自我提升:我为neovim编写了一个fork:nvimpager。)


1

[编辑]:刚注意到猫在使用vim和脚本时并没有成功,但是您可以使用'head'。

guest@demomachine$ head -c [terminalsize] demo.typescript

EXAMPLE: guest@demomachine$ head -c 3710 demo.typescript

如果演示机具有可用的彩色终端并且基于* nix,则可以使用以下命令记录脚本:

you@yourmachine$ script -c "vim [sourcefile]" demo.typescript

然后就

guest@demomachine$ cat demo.typescript

cat可能无法针对此问题使用vim和脚本,请参见上面的编辑。

在演示机上。提示:请注意录制过程中的终端尺寸,应小于或等于演示机的尺寸。

脚本还允许您记录整个终端会话,因此您可以使用scriptreplay记录和播放演示。

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.