2008-10-02

使用 vim, ctags 来记带书签的笔记

个人比较偏好纯文本的记录,因为不管何种严苛的条件下只要能查看文本文档就能够读取。
(当然某些特殊的笔记还是需要依靠富文本才能完成的)

在某些时候希望这些纯文本的记录能够带上书签就更好了——特别是当这些记录日渐积累过多的时日——能够带上目录索引就更好了。

记得 vim 的help文档么?都是纯文本文件,但是它有带书签、索引的特性跳来跳去,并且还带少量高亮。

看来仅依靠 vim 自带的这个功能就可以做到了。

如何做呢?
只需在每个文本文档末尾加上:

 vim:ft=help

就能让 vim 在读取该文档后按照vim help来解析。

仅仅这样么?
还不够!
那么如何能够让 vim 在文本中支持书签功能呢?
随便打开一个vim的帮助文档看看就知道了。

通过两个"*"括起来的字符来锚定书签,
通过两个"|"括起来的字符来索引书签。
如:

索引 |the_first_bookmark|
书签 *the_first_bookmark*

在“索引”后面的"the_first_bookmark"上面Ctrl+]来跳转到
“书签”后面的"the_first_bookmark"所在位置,
然后按Ctrl+T(或Ctrl+O)可以跳回原来的“索引”后的"the_first_bookmark"所在位置。
还能支持不同文件之间的书签跳转,当然前提是书签不能够重名!!!

什么?不能跳,提示没有“tag”文件?
哦!忘记说了,还有条vim的命令:
:helptags .

表示构建当前目录下的*.txt文件的vim help tag索引。
能否构建成功关键是看你的系统里面是否有ctags程序(一般开发用Linux都会有的)
没有的话可以到 http://ctags.sf.net/ 去下载(有Windows版本)

要注意的是:
书签的命名规则,字符串中间不要有空格,不要有除"_"之外的符号。
还有就是当前目录下不要有重名的书签——就是说所有"*"中间的字符串们不要有重复的。


其他:
分隔行,支持如下三种高亮分隔行(内容分块显示,看起来更清晰):

---------------------------------------------------------------------------
===========================================================================
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

感兴趣的话,还可以玩玩ASCII艺术。


总结如下:

  1. 文件结尾 vim解析标识:
     vim:ft=help

  2. "*"中间的字符串锚定命名书签

  3. "|"中间的字符串索引到指定命名的书签

  4. 构建tags索引:
    :helptags .



//EOF

0 comments: