要找到一个合适的语法高亮插件真不容易,这两天在Tiger_Zhao的帮助下摸索出一种利用TextPad在LiveWriter和Word中插入语法高亮代码的方法,简单记录如下。文末补充记录一些使用TextPad的小技巧。
大致的思路是先利用TextPad的语法高亮功能和编辑功能得到正确着色的代码段对应的HtmL代码,然后把这个代码拷贝到LiveWriter的源代码段,然后把这个代码再把着色后的正文拷到Word里。有点绕的说
。
1、在TextPad里获得正确着色VB代码段
(1)下载并安装TextPad。这个软件是共享版的,没注册的版本所有功能都是全的,只不过时不时的会弹出个对话框叫你注册,我觉得没啥大关系。
(2)制作语法高亮文件。从
这个地址下载一个VB6的syn文件,然后在TextPad打开这个文件。按照
这个帖子5楼和7楼的方法修改它(感谢无比细心和耐心的
赵老虎),改完之后把它保存在TextPad安装目录的system子目录下。
这个文件记得备份下来,以后你就不需要重复制作了。
(3)添加VB6文档类。具体可以看TextPad的Help ”How to Create a New Document Class” 这一节。在新添的文档类指定用第(2)步制作的语法高亮文件。另外,记得把里面括号的颜色设置为黑色(原来为红色)、把keyword1的颜色设置为深蓝色(原来为宝蓝色)。还要记得添加关联的后缀名,至少加个*.bas哈。对了,还可以把CurrentLine的底色设置为黄色(原来为白色),这个可以设置在缺省文档类里,这样所有文档类都可以有这个方便编辑的设置了。
(4)好了,现在打开一个空的.bas文件,然后从Visual Studio里拷贝代码段过来。怎么样?效果是不是很满意啊?至此,你在TextPad里已经可以正确地着色VB代码了。
2、在LiveWriter里获得正确着色VB代码段
首先在TextPad里得到语法高亮代码对应的HtmL源码:
(1)初步生成HtmL代码。把上面第(4)步显示的VB代码选上,然后点Edit->Copy Other->As a HTML page,然后打开一个空白文档,然后Ctrl+V。这样我们就初步得到了这段着色代码对应的Html代码。
(2)修改Html代码的标签。用TextPad工具栏上的Replace工具,这段Html代码中做如下替换操作:
把所有的span class替换成font color
把所有的替换成
把段首标记的所有css关键字都直接替换成相应的颜色值。例如,把所有的TPtext替换成#000000,把所有的TPkeyword1替换成#000080等等。
(3)修改Pre的行高和字体。这个是可选的,我喜欢在Pre后加上style修饰符,改成这个样子:
(4)拷贝Html源码。把
之间(含)的源码Ctrl+C,这样我们就拷贝到了语法高亮代码对应的HtmL源码了。然后就是粘贴到LiveWriter里了。这个简单,打开LiveWriter,切换到源代码视图,Ctrl+V,然后切换到编辑视图,怎么样?效果满意否?
对了,你可以在TextPad里把(1)+(2)录制为一个宏,把(3)录制为另一个宏,这样以后你只要轻点鼠标就可以完成上面所有操作了。
另外,有时自动生成的Html代码是
而不是标记的。这时候你需要
在代码段前加上
标记及样式标记(同上)
把所有的
删掉
把所有的
把替换为
当然,你也可以把上述步骤录制成一个宏。另外,如果你的程序代码有缩进,还需要把padding标签替换为相应数量的空格,比如把所有
替换为4个英文空格。
3、在Word里获得正确着色VB代码段
现在从LiveWriter的编辑视图把那漂亮的代码段拷贝粘贴到Word文档里吧,颜色已经对了。然而行距不对,选中这个代码段,按以下方法调整:
(1)字体设置为YaHei Consolas Hybrid
(2)段落的间距部分设置为:
段前0,段后0
勾掉(不选)“如果定义了文档网格,则对齐网格”。
多倍行距,设置值为0.75
(3)另外,还可以根据自己喜好,设置边框和底纹。我一般设置底纹为“灰度-5%”,边框选择“阴影”模式,应用于段落。
你还可以把(1)-(3)步录制为宏,之后把这个宏拖到工具栏上,这样日后点一下鼠标就可以设置代码格式了。对了,有时候你在Word里做了工具栏啥的设置后,重新打开后设置却丢了。这是因为你没把这些设置保存在Normal.dot里。解决的办法很简单,设置完毕后,Shift+
文件,在菜单上选
全部保存。最后上一段word里的漂亮代码自我欣赏一哈。
4、备份TextPad
做了这么多辛苦的工作,最好备份下来,下次重装系统后不要再重复劳动。要备份哪些东东呢?
(1)备份syn文件。第1节第(2)步制作的VB6语法高亮文件要备份下来,在TextPad安装目录的system子目录下,重装系统后再把它拷回去就行了。另外,sample目录下的cliplibrary文件(见下节)也可以备份下来,省得重复当。
(2)备份文档类。把这个注册表项HKEY_CURRENT_USER/Software/Helios/TextPad 5/Document Classes/VB6导出,重装系统后重新导入就行了。
(3)备份宏文件。第2节辛苦录制的宏要备份下来,通常在C:/Documents and Settings/当前用户名/Application Data/Helios/TextPad/5.0下。你可以把config.xml文件和macro文件都备份下来。
像我一样爱问问题的朋友也许会说,那Word里的宏咋个保存法啊?这个嘛,用“Microsoft Office 工具”中的“用户设置保存向导”就可以了。
5、使用TextPad的其他技巧
(1)保存WorkSpace,这样打开TextPad时可以一次性地把你上次打开的文件都打开;
(2)使用ClipLiabrary,可以加快输入速度。在
这里可以下载到Clip插件(感谢
patrickkong)。
Tiger_Zhao分享了如下使用经验:
用“Ascii 字符”库可方便查编码。
用“HTML 字符”等库可帮助记忆,熟练后直接输入更方便。
“Transact-SQL”等库可以作为模板使用。
还有些库可以提供名副其实的剪贴板功能,比如“Vbscript Templates”。
(3)设置自动换行:点击工具栏上一个反S形的图标,或者菜单“Config/Word Wrap” 。
(4)按列选择文本:比如想统一的把
若干行代码前面的空格全部去掉4个,菜单“Config/Block select mode”或者选中那几行文本“Shift+Tab”。