注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

guoyoooping的博客

audio,picture, text and video

 
 
 

日志

 
 

让纯文本也有树状书签 让纯文本也有语法高亮  

2010-01-07 21:38:27|  分类: Vim: 学习Vim的心 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

ypguo
2010年1月6日

[关键字] vim 插件 自动生成目录树 纯文本 txt 文档结构图 语法高亮

[摘要] "纯文本浏览器"是一个vim插件, 显示文本文件的树状文档结构图, 高亮文件的小
标题 , 关键字, 超级链接等内容, 就像在使用taglist浏览C代码一样.

很多人热衷于用纯文本的记录,因为不管何种严苛的条件下只要能查看文本文档就能够读
取. 想想看所有的rfc文档都是用纯文本写成的.

在某些时候希望这些纯文本的记录能够带上书签就更好了--特别是当这些文档比较长的时
候, rfc3261有200多页--能够带上目录索引就更好了。

记得 vim 的help文档么?都是纯文本文件,但是它有带书签、索引的特性跳来跳去,并
且还带少量高亮。看来仅依靠 vim 自带的这个功能就可以做到了.

本文介绍的这款插件同样也可以实现这些功能, 但我们不用vim帮助文档的格式, 因为那
需要加入额外的控制字符(通过两个"*"括起来的字符来锚定书签,通过两个"|"括起来的
字符来索引书签), 不懂Vim的人拿到你的文档看到这些奇奇怪怪的标记一定会非常奇怪,
其它文档的作者也不会因为你是Vimer而替你在文档里加入这些奇怪的记号.

如何做呢? 只需要安装"纯文本浏览插件"即可:

http://www.vim.org/scripts/script.php?script_id=2899

txt.zip : Plain Text Browser(show the document structure and highlight in
plain text)

下面简要介绍一下这个插件.

1. 简介

Plain Text Browser: 纯文本浏览插件, 执行":Tlist"后会开一个taglist窗口, 在这个
窗口里列出文章的小标题, 图列表和表列表. 用鼠标点击标签即可跳转到正文定义处, 就
像在使用 taglist浏览C代码一样. 在正文窗口里, 该插件会高亮文件的小标题 , 关键字
, 超级链接等内容,

预览:

http://guoyoooping.blog.163.com/album/edit/#p1

2. 安装

请首先安装taglist插件 (http://www.vim.org/scripts/script.php?script_id=273),
我相信玩Vim的没有几个人没有安装这个插件吧. 下载插件后解压缩后会得到三个文件:
.ctag, txt.txt和 txt.vim. 把这三个文件分别拷贝到下列目录下(请注意Windows下是
$HOME/vimfile):

    $HOME/.vim/syntax/txt.vim
    $HOME/.vim/doc/txt.txt(别忘了打开该文件执行"helptag ."命令)
    $HOME/.ctags

在你的.vimrc文件里加入下面三行:

    syntax on
    let tlist_txt_settings = 'txt;c:content;f:figures;t:tables'
    au BufRead,BufNewFile *.txt setlocal ft=txt

好了, 现在用Vim打开你的纯文本文件, 执行"Tlist"命令, 现在你看到了什么? 你的纯文
本将拥有漂亮的树状标签和语法高亮.

3. 进阶

Vim也不是神仙, 它是怎么知道你的文档里哪里有小标题呢? 既然是语法高亮, 纯文本文
件怎么会有语法呢? Vim会为你高亮哪些元素呢? 别急, 我们先分析一下人们写文档的习
惯, 那就让我们用rfc文档做分析吧.

rfc文档通常在第一页会有一个封面, 然后是目录, 接着就是正文, 这些我们都不关心. 我
们真正关心的是它的标题的格式. rfc文档通常的标题都是以"数字" + 符号"." + "空格"
打头, 也就是说, 以"数字"+符号"." + "空格"打头的行就是标题了. 哈, 原来这么简单!

至于语法, 人们通常对于"todo",  "note", "error",  "bug"这样的词汇比较关心, 不错
, 这是我们关心的关键字, 这些关键字需要高亮显示.

网址, Eamil地址在通常的浏览器里都显示为带下划线的蓝色, 好了, 我们也把它们显示
为蓝色的下划线.

引号, 括号里的内容大家也许比较关心, 我替你加上颜色.

列举事情的缩进行也许要引人关注, 我替你标出来了, 提醒你注意.

等等, 你能想到这些都可以称为语法. 如果你愿意, 你可以把日期高亮, 甚至可以把你暗
恋的女生的名字加入到关键字里, 让人一眼就能看出她与众不同...

这些只是简单的介绍, 欲了解更多关于纯文本的语法及其效果, 请在安装"纯文本浏览器"
插件后执行":help txt.txt"命令, 然后用命令":set ft=txt"模仿普通的文本文件, 观察
各种coloscheme模式下这些元素高亮的效果.

4. 美中不足

--注: 这个问题已经解决了, 但是当时写的文档懒的修改了, 具体修改方法可参考http://guoyoooping.blog.163.com/blog/static/1357051832009112910162389/

如果你是linux用户, 那么你很幸运, "文本浏览器"插件工作得很好, 如果你是Windows用
户, 如果文件名或文件的路径上有中文字符的话, 树状标签栏可能不能正确的显示. 这是
taglist的问题, 用C语言文件试验效果也是一样的, 关于这个问题, Taglist的作者
Yegappan先生(应该是先生吧^)^)是这么回答的:

    I don't know how to escape the chinese characters in a filename. Do
    you have any other Vim plugin that passes these filenames to the
    system() function correctly?

我希望有高人能振臂一呼, 解决这个问题, 让我们中文Windows用户早点过上好日子:)

5. 反馈

如有任何问题或建议, 请联系guoyoooping AT 163 DOT com. 谢谢您的使用.

[参考资料]

[1] exuberant ctags, 主页: http://ctags.sourceforge.net/
[2] taglist, 主页: http://vim-taglist.sourceforge.net/
  评论这张
 
阅读(1385)| 评论(8)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017