在G+上看到网友的介绍,发现vim可以把代码按照当前的语法高亮转换成html文档,真是一个很贴心的小功能。
对我来说,这个功能至少有两个作用。第一,把转出来的html文档直接放到博客里,这样读者看代码更加一目了然;第二,在需要把代码寄给同事review前先转成html格式,以应对大部分email客户端代码不能自动对齐的问题。
TOhtml使用起来很简单。
如果需要把整个文档转成html,在命令模式下执行:
:TOhtml
如果只是需要转某几行代码(如30到42行),则执行:
:30,42TOhtml
下面是用我之前博文里的一段代码转换出来的结果:
30 ssize_t my_show(struct kobject *kobj, struct attribute *attr, char *buffer)
31 {
32 struct my_kobj *obj = container_of(kobj, struct my_kobj, kobj);
33 ssize_t count = 0;
34
35 if (strcmp(attr->name, "name") == 0) {
36 count = sprintf(buffer, "%s\n", kobject_name(kobj));
37 } else if (strcmp(attr->name, "val") == 0) {
38 count = sprintf(buffer, "%d\n", obj->val);
39 }
40
41 return count;
42 }