在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 }