gVim下编辑txt2tags

转自:http://liudibo.spaces.live.com/blog/cns!ED3FFE7293541AAC!590.entry

公司每发布一个feature或者product都要写spec,眼看着又要开始一个新版本的开发了,而这次写spec的任务落在了我的头上。
原以为用word三下五除二就可以搞定呢,谁知必须用一个叫做txt2tags的标记语言来写。据说这个DD很强大,也非常的方便,号称:“ONE source, MULTI targets”,用任何文本编辑器都可以进行编辑,不过起初我还是很不适应的,毕竟不是所见即所得,有点勾起童年使用WPS的感觉了……

txt2tags安装
txt2tags是sourceforge上的一个开源项目:http://txt2tags.sourceforge.net/,首先下载for windows的安装文件
http://txt2tags-win.sourceforge.net/index.html.en
最新版好像是2.3,05年6月更新的,看来也是无人问津的DD了,如果没有安装过python,就下载Full version吧。在主页上可以找到几乎所有你需要的资料,有示例文件,有标记的解释,有在线convert工具等等。
安装好直接就可以用了:选择一个文本文件,设置一些参数,点击convert即可。

写spec的头几天一直使用notepad,也没有去看User-Guild,看了才发现原来txt2tags推荐使用vim/emacs/nano/kate等编辑器,而且配有Text Editor Syntax Highlighting,这无疑给spec的撰写填色不少啊。于是准备下载vim尝试一下。

gVim安装以及txt2tags插件配置
到vim官方网站下载for windows的安装文件:http://www.vim.org/download.php#pc,最新版本7.1。
安装好gVim之后,到txt2tags安装目录/extras目录下,可以找到这样两个文件gvim-menu.vim和txt2tags.vim两个文件。

gvim-menu.vim: gVim环境的菜单插件。把它拷贝到vim安装目录/vim71/plugin目录下,再次启动就可以在gVim的菜单中多出一项txt2tags,里面包含了写txt2tags标记文件的一些快捷方式,对于新手来说比较方便。
txt2tags.vim: gVim的语法高亮插件。把它拷贝到vim安装目录/vim71/syntax目录。

txt2tags安装自带的这两个文件的版本都不是最新的,可以到网上下载最新版本。
gvim-menu.vim: http://www.vim.org/scripts/script.php?script_id=1097 最新版0.5
txt2tags.vim: http://txt2tags.sourceforge.net/tools.html Syntax Highlighting - vim

接下来还需要配置一下gVim的环境。首先加入对txt2tags类型文件的支持,txt2tags的默认扩展名是t2t,我也学着专业一下,把spec的扩展名从txt改成t2t了,然后修改vim安装目录/vm71下的filetype.vim文件,这个文件中记录了gVim支持哪些扩展名的文件,并自动调用相应的高亮语法。在如下语句后面添加对txt2tags .t2t扩展名的支持:

" Z-Shell script
au BufNewFile,BufRead zsh*,zlog*        call s:StarSetf('zsh')
" txt2tags file
au BufNewFile,BufRead *.t2t               setf txt2tags

保存修改后,启动gVim,此时当你打开.t2t文件时,就会看到关键字和标记都被高亮了,舒服多了。
但是还有一点是此时在语法菜单下面找不到我们的txt2tags语法,接下来的任务就是修改菜单项。修改vim安装目录/vm71下的makemenu.vim文件,找到SynMenu TUV类别,txt2tags语法以T开头,所以就加到这个类别中。按照字典序找到合适的位置加入如下语句:
        SynMenu TUV.Txt2tags:txt2tags
“:”前的Txt2tags是菜单上显示的文字,后面的txt2tags就是语法插件的名称了。保存修改后,在gVim环境中运行如下命令:

        :source $VIMRUNTIME/makemenu.vim

gVim自动根据刚刚的修改重新生成菜单文件synmenu.vim,gVim启动就会读取这个文件载入菜单项的。
至此,txt2tags在gVim下的配置算是大功告成了,现在载入一个txt文件,选择txt2tags语法高亮,也work了。

gVim的其他设置
首先,gVim无法自动保存当前的设置,比如:字体、配色方案等等。所以我们要修改一下gVim的资源文件,使得每次都可以载入我们所希望的设置。详细的配置说明可以参考:http://sm4llb0y.blog.163.com/blog/static/18912397200732081752824/
修改vim安装目录下的_vimrc文件,添加我用到的一些设置包括:
set ts=4    Tab宽度为4个字符。 
set et       编辑时将所有Tab替换为空格。 
该选项只在编辑时将Tab替换为空格,如果打开一个已经存在的文件,并不会将已有的Tab替换为空格。如果希望进行这样的替换的话,可以使用这条命令“:retab”。 
set smarttab   当使用et将Tab替换为空格之后,Tab键插入4个空格,Backspace键可以删除4个空格,而不是一个。
set lbr      不在单词中间断行。
colo koehler    设置配色方案,我喜欢koehler方案,黑底、白字,配txt2tags高亮很舒服。
setlocal spell spelllang=en    开启拼写检查,并设置语言为en
set nobackup  不生成备份文件(.t2t~)

 

txt2tags tips & tricks
在官方网站可以找到专门有一页来介绍tips&tricks的:http://txt2tags.sourceforge.net/tips.html
看了这些,你才能深刻领悟到txt2tags是多么的强大。txt2tags中提供了两个宏定义指令非常有用:%!PreProc和%!PostProc。
其使用就像c/c++中的宏定义一样,当然比宏定义强大很多。PreProc是在解析整片文档之前做替换,PostProc则是在解析文档之后做替换,被替换的内容简单的可以直接用字符串表示,复杂的则可以用正则表达式。
我在写文档的时候,希望设置字符的颜色,发现txt2tags中没有相应的标记,并且在txt2tags直接插入html标记也是没有用的,txt2tags会直接将html标记翻译成可读字符显示在最终生成html文件中。这个时候就可以使用这两个宏命令了:

% use custom tags: {{#FF0000 Good morning}} -> <font color=#FF0000>Good morning</font>
%!PostProc(html) : '{{(.*?)/s(.*?)}}'  '<font color=/1>/2</font>'
% define 'darkyellow' to be #8F8F00
%!PostProc(html) : '<font color=darkyellow>'  '<font color=#8F8F00>'

单独一个‘%’表示注释,第一个宏定义表示在解析所有标记之后替换,找到类似这样的{{...}}字符串,其中包含的第一个空格前的字符串作为颜色值,空格后的全部字符串作为文本(关于正则表达式在这里就不做说明了,google之);第二个宏则相当于定义了darkyellow宏,当这个字符串出现在font color位置时,将其替换为#8F8F00。举例如下:

原文:
{{green How do you do!}}
{{darkyellow Fine, thanks! What about you?}}
html文件:                                                                           显示效果:
<font color=green>How do you do!</font>                                How do you do!
<font color=#8F8F00>Fine, thanks! What about you?</font>        
Fine, thanks! What about you?

通过这个例子足以看出txt2tags的强大,它可以内嵌任何html的标记,甚至更多……

你可能感兴趣的:(html,正则表达式,vim,扩展,文本编辑,tags)