因为要写一些含有源代码的文档,但是使用Word让我感觉很Boring,以前写的文档今天再去看是在有些头大:贴上去的代码相当Ugly,即便花了很长时间调节排版格式最后还是很差强人意,另外从Word中复制其他网站上可能会出现换行符不匹配问题,比如原来是\n,现在是\n\n,每次都要调节。
后来在网上找到了DocBook,在网上找到很多文档,但是研究了半天,实在是配置太繁琐,本来是要为书写文档服务,但是又要为配置书写的工具划伤几天功夫,后来又找到了高德纳开发的Tex的衍生版本Latex,但是使用起来还是相当不顺手,本来无需太多的复杂功能,却要花费很多时间去研究Latex的语法。怎么办呢? 突然想到以前用到过的一个Wiki,好像具有很好的源码显示功能,但是呢,又必须安装服务器!懒到家了,后来就找到了txt2tags,终于算是满足了我的小小的简单功能要求了。
txt2tags是使用Pthyon语言写的脚本,一个文本格式化和转换工具,能够将带有特定标记的纯文本文件转换为支持的任意一种目标格式,包括:
更多的信息可以从http://txt2tags.org/得到,一个中文的指南可以在这里下载http://txt2tags.org/zh/userguide-zh.pdf
Linux ubuntu 2.6.35-28-generic
txt2tags 2.6 version
ubuntu 是自带txt2tags的,如果版本较低的话可以从http://txt2tags.org/下载最新版本,或者 apt-get install txt2tags
。
强烈建议下载源码并安装,因为vim相关的配置需要下载源码。
可以直接使用文本编辑器编辑txt2tags使用的*.t2t文件,但是一个有颜色标注的编辑器是用来提高编辑效减少错误的前提。txt2tags-2.6\extras 源码中提供了相关的脚本。
txt2tags.vim提供了在vim打开*.t2t文件时的颜色标注功能。将它放到/usr/share/vim/vim72/syntax/下,并编辑/usr/share/vim/vim72/filetype.vim ,在
" Z-Shell script au BufNewFile,BufRead .zprofile,/etc/zprofile,.zfbfmarks setf zsh au BufNewFile,BufRead .zsh*,.zlog*,.zcompdump* call s:StarSetf('zsh') au BufNewFile,BufRead *.zsh setf zsh
下添加
" txt2tags file au BufNewFile,BufRead *.t2t setf txt2tags
此时再使用vim打开*.t2t文件,就会可以看到颜色的变化了:所有的关键字都会用对应的颜色显示出来。
注意:不同的Linux操作系统vim72对应的路径名可能不同。
txt2tags-compiler.vim提供了在vim中直接对当前文件转换的功能,这一点对于调试至关重要,因为一个通常的转换命令txt2tags -i test.t2t -t html -o test.html
是相当繁琐的。
将txt2tags-compiler.vim放置到/usr/share/vim/vim72/plugin即可。
网上有文档提到需要将let g:txt2tags_executable = "txt2tags"
更改为let g:txt2tags_executable = "txt2tags.py"
但是由于ubuntu上/usr/bin/txt2tags是没有后缀.py的,所以无需更改。
如果此时使用vim打开*.t2t文件并尝试使用:make来转换文件将提示txt2tags.error: txt2tags: Error: No target specified (try --help)
, 网上的文档没有提到为什么,实际上思考一下也会明白:txt2tags支持多种目标文件的输出,但是我们并没有告诉txt2tags需要哪一种文件,最终在userguide-zh.pdf找到了答案,%!Target用来定义缺省的文件格式,添加%!Target: html
到*.t2t文件的开始。此时在vim中直接使用:mak就可以转换了,此时相同目录下将出现同名的但是扩展名为.html的文件了。另外调节了%!Target: html
后,在命令行中直接使用
txt2tags test.t2t
即可。%!Options代表编译时命令行的其他选项,它不是必需的。
提示:txt2tags-compiler.vim不仅提供了命令mak,还提供了对应的快捷键F5,直接使用F5即可转换。