我如何运行无头 gvim 来将语法高亮的代码转换为 HTML?

我如何运行无头 gvim 来将语法高亮的代码转换为 HTML?

我想批量生成 HTML 文件来展示一些 gvim 配色方案。我从脚本中获取了当前解决方案http://code.google.com/p/vimcolorschemetest/,但这将为我想要处理的每个色彩方案打开一个 gvim 窗口。

到目前为止,我发现避免每秒弹出的烦人的新窗口的唯一方法是启动 VNCserver 并将DISPLAY环境变量设置为 VNCserver 的环境变量,以便所有 gvim 窗口都发送到 VNC 会话内的显示器。

但是,我想知道是否有办法可以避免整个 VNC 设置,而只运行无头 gvim 实例来执行转换并退出,而实际上不会显示任何窗口。

顺便说一下,我正在使用 Linux。

答案1

vim -E -c "TOhtml" -c "w" -c "qa!" -- test.c >/dev/null

使用vim,它的加载速度会比 快。您可以使用或 No-X 版本的 来gvim稍微加快加载时间。-Xvim

为了使其静音,使用>/dev/null。但这会使vim( ) 发出抱怨Vim: Warning: Output is not to a terminal并暂停一会儿,因此我们使用-E

我们可以尝试一下-E -s,但我不知何故无法:TOhtml正确使用,结果是没有颜色,而且只有一行。

-R -c "set noreadonly"我通过单独使用或更好来稍微改进命令-n。这可以防止在打开已有交换文件的文件时出现通常的警告消息。没有什么特别的可以防止无法打开不可写文件(例如由 root 拥有的文件)。

看看我的维姆卡特GitHub 上的存储库,用于在终端中使用 vim 语法高亮的示例。

答案2

我真的不能确定你的问题是 Vim 一次打开了太多窗口,还是它根本打开了任何窗口……

后一种情况我无法帮助您,但是,在任何较新的 Vim 中,您都可以执行如下操作(非常原始,但可能会变得更好):

# gvim -c TOhtml -c w -c q -c q test.c

这将使用当前颜色方案基于文件 test.c 创建 test.c.xhtml。然后,也许再使用 -c 来更改颜色,将其全部粘贴到 shell 脚本中...

编辑:

实际上没有显示任何窗口。

是的,我是个白痴。请忽略此帖子。

相关内容