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

Vim、Emacs配置和使用
回复
zerger
帖子: 23
注册时间: 2010-01-05 22:47

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

#1

帖子 zerger » 2010-01-09 16:55

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

[摘要] "纯文本浏览器"是一个vim插件, 帮助你生成纯文本文件的目录树, 点击就可实现
跳转, 同时高亮文件的小标题, 关键字, 超级链接等内容, 使你的文本文件具有语法高亮.

创建者: ypguo

脚本类型: syntax

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

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

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

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

如何做呢? 只需要安装"纯文本浏览插件"即可, 下面简要介绍一下这个插件.

1. 预览

安装"纯文本浏览器"插件后, 用vim打开纯文本文件, 执行":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. 美中不足

如果你是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. 反馈

如有任何问题或建议, 请联系[email protected]. 谢谢您的使用, 欢迎到该插件的主
页进行评分.

6. 使用提示

把下面的快捷键加入到你的.vimrc文件里可以改进工作效率:

"用F8打开或关闭taglist窗口
nmap <F8> <ESC>:Tlist<RETURN>
"用F5刷新修改过的文档
nmap <F5> <ESC>:TlistUpdate<RETURN>
头像
darasion
帖子: 1153
注册时间: 2007-12-05 12:25

Re: 用vim让纯文本也有树状书签 让纯文本也有语法高亮

#2

帖子 darasion » 2010-01-09 19:40

好长。 :em20
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 用vim让纯文本也有树状书签 让纯文本也有语法高亮

#3

帖子 eexpress » 2010-01-09 20:16

其实 zim够好了
● 鸣学
zerger
帖子: 23
注册时间: 2010-01-05 22:47

Re: 用vim让纯文本也有树状书签 让纯文本也有语法高亮

#4

帖子 zerger » 2010-01-11 11:06

请问zim是什么东东? 没用过.
eexpress 写了:其实 zim够好了
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 用vim让纯文本也有树状书签 让纯文本也有语法高亮

#5

帖子 eexpress » 2010-01-11 11:17

也是类文本的笔记软件。使用wiki的部分markup语法,支持一些格式。
● 鸣学
zerger
帖子: 23
注册时间: 2010-01-05 22:47

Re: 用vim让纯文本也有树状书签 让纯文本也有语法高亮

#6

帖子 zerger » 2010-01-13 11:59

我想侧重点不同吧, 这个插件主要是用来写文档和读文档的, 比如用它阅读RFC文档. Zim
侧重于写Wiki, 必须要使用一些markup语法, 如果在纯文本文件里阅读, 可能不好理解.
不知道理解的对不对.
eexpress 写了:也是类文本的笔记软件。使用wiki的部分markup语法,支持一些格式。
头像
underline_1
帖子: 63
注册时间: 2010-07-16 0:17

Re: 用vim让纯文本也有树状书签 让纯文本也有语法高亮

#7

帖子 underline_1 » 2010-07-31 3:01

mark
回复