我想用VIM生成漂亮的HTML代码段(C,python或其他)。
现在,我只知道VIM“ :TOhtml ”下的命令,但是结果似乎太基本了。
这是我想要得到的示例(行号和圆角):
有谁知道快速制作这种演示文稿的方法吗? 即使VIM无法做到这一点,是否有一个工具可以使用原始代码部分并使用必要的可自定义CSS直接生成HTML代码?
更新1:
我首先通过用“:%set nu”显示行号并执行“:TOhtml”找到了部分解决方案。
因此,例如,我得到以下代码片段:
1 #include "clFFT.h"
2 #include <stdio.h>
3 #include <stdlib.h>
4 #include <string.h>
5 #include <math.h>
然后,我设置为CSS样式:
.LineNr { color: #007399;
-moz-user-select: -moz-none;
-webkit-user-select: none;
user-select: none;
}
当我使用Firefox或Chrome时,会发生我的问题:
1)在第一种情况下(FF),如果我从html页面复制代码,则例如当我粘贴到nedit中时,每行由1个空行与其他行分隔。
2)在第二种情况下(Chrome),代码选择正确粘贴,但行号也出现了,我认为“ user-select: none; ”可以防止此行为。
有人可以帮我调试吗?
谢谢
更新2:
我尝试了zeppelin建议的解决方案,但是“ :TOhtml ”命令生成的HTML代码进入vim的形式是:
/* Allocation of 2D arrays */
x = malloc((size_tot_y)*sizeof(double*));
x0 = malloc((size_tot_y)*sizeof(double*));
for(i=0;i<=size_tot_y-1;i++)
{
x[i] = malloc((size_tot_x)*sizeof(double));
x0[i] = malloc((size_tot_x)*sizeof(double));
}
或表格的另一部分:
printf("Time step\n");
scanf("%lf",&dt1);
printf("Convergence \n");
scanf("%lf",&epsilon);
上面的两个HTML代码在输入代码的每一行前面都不需要标记。
您难道不认为我的第一种方法不好吗(由于在每行中存在不同的标记,所以在每行中都有不同的标记,这意味着在第一个方法之后总是 "n-th line" )(在像nedit这样的编辑器中复制/粘贴时会有空白行) "n-th line" ?
例如,让我们看这一行:
1 #include "clFFT.h"
问题是否来自其他标记( #include 和"clFFT.h" )吗?
当我复制一部分代码时,似乎这两个另外的标签会产生回车符,当我将其粘贴到文本编辑器中时会解释空白行,不是吗?
问候
更新3:当我复制/粘贴最初由VIM命令:TOhtml生成的代码时,没有发现任何有关删除空白行的尝试的新信息,每个代码行的开头都有行号。 例如,我再次向您展示生成的HTML代码:
1 #include "clFFT.h"
2 #include <stdio.h>
3 #include <stdlib.h>
4 #include <string.h>
5 #include <math.h>
当我从页面复制/粘贴某些代码时,我不希望选择行号。 这就是为什么我使用user-select: none;的原因user-select: none; 放入
也许解决方案是删除回车符(一旦我将代码粘贴到文本编辑器中,这似乎是双倍的,因为代码的每行复制之间都有空白行)。
但是,当我选择一些代码并将其复制到“复制/粘贴”文本缓冲区时,我不知道如何删除第二个回车符。
我在以下链接上找到了有趣的讨论,但我不理解所有的实用工具: https ://bugzilla.mozilla.org/show_bug.cgi ? id = 1273836
如果有人有什么主意或线索,可以告诉我。
谢谢