TxtBrowser: 在Vim中高效处理纯文本(更新)


  TxtBrowser是一款Vim插件,旨在提供更好的txt浏览体验。主要功能有:为纯文本自动生成目录树侧边栏(taglist窗口)、语法高亮、多项扩展功能(执行url、网络搜索当前词等)。TxtBrowser由国内网友ypguo开发,近期更新活跃,并且解决了taglist.vim插件不能处理中文文件路径的问题,值得关注。
TxtBrowser: 在Vim中高效处理纯文本。支持中文路径!

一、TxtBrowser功能展示

  以下是功能简介,更多请参见作者介绍,以及官方下载包中的 txtbrowser.cnx 文件。
  上图展示了目录树功能,更多截屏参见此处

1. 目录树侧边栏

  用Vim打开纯文本类型的文件(.txt 或 :se ft=txt),键入一条命令(:Tlist)或按下对应热键(可自定义,示例如下),会生成目录树侧边栏(即taglist窗口)。在目录栏点击相应标签,正文会相应跳转。
  目录栏的内容既包括正文目录,也包括图片目录、表格目录,并可进一步自定义。
  更新正文后,键入命令(:TlistUpdate)或按下对应热键(可自定义,示例如下),即可刷新目录栏。

:nmap <silent> <F8> <ESC>:Tlist<RETURN>
:noremap <silent> <F5> <ESC>:TlistUpdate<RETURN>

2. 语法高亮

  纯文本也可以“多姿多彩”!TxtBrowser可以使关键文字高亮显示,突出显示标题、关键字、列举项。可以提高效率,愉悦心情。通过 :colorscheme colorname 命令,可以尝试不同的着色方案。

3. 其他扩展功能

  * 把光标放到 URL上,执行 :TxtbrowserUrl (或 ←leader→g)打开所在处的URL,包括网址、各种文件(包括pdf、mp3等)、Email地址。
  * 把光标放到单词上,执行 :TxtbrowserWord (或 ←leader→f)打开网络字典查单词。
  * 把光标放到单词上,执行 :TxtbrowserSearch (或 ←leader→s)打开google搜索。

二、TxtBrowser点评及与VOOF对比

1. 对TxtBrowser的评价

  我认为,TxtBrowser是值得关注和支持的一款Vim扩展。推荐有需求的网友试用、使用。理由如下:
  * TxtBrowser立志要成为vim txt的集成解决方案,无论对编程人员查看技术文档,还是非编程人员记录笔记,都十分有益。
  * 作者ypguo系国内网友,诚心听取意见、积极更新程序。
  * 非常难得的是,作者从开始使用Vim到写出这款扩展竟然不到两年时间(via)。或许,这也反过来证明了vim的强大和作者的开发功力吧。

2. TxtBrowser几项功能的内部比较

  TxtBrowser插件的最大亮点功能是目录侧边栏。这对于查看长篇技术文档,或自己做笔记,很有帮助。
  至于语法高亮和其他扩展功能,早已经在其他扩展中得以实现。用户可以把TxtBrowser作为txt的集大成解决方案,来使用这些功能。也可以进行自定义、修改,或选用更强大的专门扩展。

3. TxtBrowser vs VOOF (更新)

a. 从目录导航功能看,两者差别不大,但运行环境分别需要taglist和python。
  从目录导航功能来看,TxtBrowser与VOOF(主页介绍)算是同类。我认为两者的长处与短处都是相对的,大家可根据自己的需要进行选择。
  各有长短:TxtBrowser依赖ctags、taglist;VOOF依赖Python。
  TxtBrowser胜出:其标题行来自.ctags文件定义,默认是“数字打头,后跟标题”等这样的形式,不需额外标注。而VOOF需要手工增加{{{这样的标识符。
  速度与功能:似乎VOOF的Python更快一些(未做严格测试),并且VOOF可以通过目录栏对正文段落进行前后调整、级别调整。
  中文兼容:如果采用官方taglist.vim,则TxtBrowser在Windows下,当文件或路径中含有中文空格时,目录不能正常显示(Linux下正常)。但是,ypguo对taglist.vim进行了修正,解决了此问题。
b. TxtBrowser附带了文本辅助功能,而VOOF则具备实用的节点管理功能
  TxtBrowser还具备txt语法高亮、快速打开url、搜索、翻译功能。但这些功能与目录功能实际上并无直接关系,也可以拆为两个扩展,或换用其他扩展实现。
  VOOF的优势则体现在节点管理上,VOOF的目录树不仅可以导航,也能进行节点操作。比如,节点位置的前后移动、提高或降低层级(默认是ctrl+方向键),这对资料库管理是非常实用的。
c. 结论是 TxtBrowser适用于阅读txt;VOOF适用于管理txt资料库
  从实用选择角度,我认为这两款扩展面向的对象并不相同。TxtBrowser适用于阅读txt,尤其是他人的长文本;而VOOF适用于建立和管理自己的txt资料库,可以有很多节点,并不断调整其结构。

三、安装及使用笔记

重要说明:以下内容为xbeta试用当时的记录,有些地方不适用于后续版本TxtBrowser。比如,taglist插件出了修正版,.ctags文件不再需要……

  说明:编程人员对tag、ctags、taglist都很熟悉。但对于象我这样不编程的用户来说,因为TxtBrowser而第一次安装、使用这些东西,还是比较复杂的。记录如下,并提供对初学者友好地解释。

1. 安装ctags(http://ctags.sourceforge.net/
  ctags是一款程序(exe),用来生成tag文件。tag文件可以理解成索引——某个目录项、关键词……出现在哪个文件的哪一行。
  下载 Source and binary for Windows 98/NT/2000/XP,即 ctags58.zip。只需要把其中的 ctags.exe(约300KB)解压到 windows 目录(或其他在path的目录)。

2. 安装taglist(http://www.vim.org/scripts/script.php?script_id=273
  重要说明:由于官方taglist.vim对中文支持有问题,推荐修订版本
  把插件的内容复制到 vim安装目录/vimfiles/中。以我为例,新增如下内容:

d:\soft\Vim\vimfiles\plugin\taglist.vim
d:\soft\Vim\vimfiles\doc\taglist.txt

3. 安装TxtBrowser(http://www.vim.org/scripts/script.php?script_id=2899
  除了大部分内容复制到vimfiles目录,一定要注意 .ctags 文件要复制到 “$Home”目录。$home可以简单地理解为 c:\Documents and Settings\用户ID\。以我为例,新增如下内容:

d:\soft\Vim\vimfiles\plugin\txtbrowser.vim (生成目录、扩展功能所用的插件)
d:\soft\Vim\vimfiles\doc\txtbrowser.cnx (帮助文档)
d:\soft\Vim\vimfiles\doc\txtbrowser.txt (帮助文档)
d:\soft\Vim\vimfiles\syntax\txt.vim (语法高亮文件)
c:\Documents and Settings\zyx\.ctags (重要:定义文件文件中,哪些文本生成tag)

4. 在.vimrc文件里加入:

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

5. 重启vim,打开 http://www.rfc-editor.org/rfc/rfc959.txt ,执行命令 :Tlist,应该能看到效果了。

附:文章更新历史

  2010-03-25:更新txtbrowser与VOOF的比较部分;修正一些过时说法。
  2010-02-20:更新taglist中文路径问题。
  2010-02-16:初稿。


《 “TxtBrowser: 在Vim中高效处理纯文本(更新)” 》 有 33 条评论

  1. syner 的头像
    syner

    我执行下面这一步后:
    4. 在.vimrc文件里加入:
    syntax on
    let tlist_txt_settings = ‘txt;c:content;f:figures;t:tables’
    au BufRead,BufNewFile *.txt setlocal ft=txt

    提示:‘txt;c:content;f:figures;t:tables’是无效的表达式

    1. syner 的头像
      syner

      是文中误用了中文单引号,改为英文就好了。

      1. 善用佳软 的头像

        多谢提醒。此错误是wordpress自做聪明修改的,现已通过实体字符绕过这一bug。

        1. 荒野无灯 的头像
          荒野无灯

          @善用佳软, 我一直在用codecolorer这个插件,觉得如果帖代码的话用这个插件比较好,推荐使用

  2. 多谢了 的头像
    多谢了

    我的目录框出现在右边
    请问怎么让它出现在左边啊

  3. 多谢了 的头像
    多谢了

    已解决目录框的问题
    目录框是ctag的目录框
    let Tlist_Use_Right_Window = 0

  4. fanuq 的头像
    fanuq

    为什么打开rfc959.txt的时候回出现错误,错误提示如下
    http://photo2.bababian.com/upload1/20100222/F5143833D79297F31CF46AEED9425283_800.jpg

    1. ping 的头像
      ping

      你好, 这个问题已经解决(版本1.2.3), 安装后只需要为taglist.vim的bug(:help txt-faq, 7.1节)打上fix(打一次就够了, 升级时不需要再打), 不需要再手动转换编码格式, 也不需要再移动.ctags文件了. 从此以后, 和encoding相关的问题应该不会再有了^)^

      1. ping 的头像
        ping

        也不再要求fenc=enc了, 只要你的vim能显示中文, 应该就好使了^)^

    1. fanuq 的头像
      fanuq

      谢谢,但是使用
      set encoding=utf8
      set filencoding=cp936
      打开txt文档不报错了。以后打开gvim界面菜单栏却乱码。而且:Tlist 命令也不再好用了

      1. ypguo 的头像

        这个不是设在.vimrc文件里, 而是在你工作的文档里执行”:set fenc=cp936″, 然后保存退
        出. 关于.vimrc里的设置每人有自己的偏好, 但你可以参考一下我的配置: “vim学习笔记
        11, 晒晒我的.vimrc”. 总的来说你先保证你的vim可以正常工作, 再把安装后的文件用这
        个命令转换一下fenc再保存就可以了.

        这样说起来还是挺拗口的, 也挺麻烦的, 我正在研究这个问题, 估计下一版本出来的时候
        你就可以不关心中文编码的设置问题了, 直接安装就可以用了, 当然前提是你的Vim能正确
        显示中文, 呵呵.

        1. ypguo 的头像
          ypguo

          新版本(1.1.8)已出, 安装,打上taglist的patch,就可以使用, 不必再要求enc=fenc。还有个小bug, 就是txt.vim文件在打开fenc=cp936的文件时会报错(但不影响功能.), 把这个文件(txt.vim)的fenc设成cp936保存就没有问题了. 问题正在研究中, 解决请关注后续版本.

    2. nisky 的头像
      nisky

      我是一个刚刚接触gvim的新手,但是我很想用这个插件来帮助我做读书笔记。我安装的是1.1.8版本,但是还是碰到了和fanuq同样的问题。按照http://www.vim.org/scripts/script.php?script_id=2899的指示,但是提示我没有:help txt-faqs的说明…我应该如果打patch?

      1. ypguo 的头像
        ypguo

        Hi:

        安装插件后, 需要打开txtbrowser.txt文件, 然后执行”:helptag .”才能生成帮助标签,
        然后你才能使用”:help txt-faqs”查看帮助文档, 其它插件的帮助文档也是一样的.

        首先你先确保安装这个插件之前gvim一切都正常^_^ 然后参考下面的配置试试

        “设置编码格式, 在windows和cygwin下必须用cp936编码, 在其它操作系统下, 用utf-8.
        if (has(“win32”) || has(“win32unix”))
        set encoding=cp936″utf8
        else
        set encoding=utf8
        endif
        set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1

        如果还不行, 我就猜不出原因了. 如果您不怕麻烦, 可以将你的.vimrc, 乱码的快照发
        mail给我, 希望我能帮上忙!

        1. nisky 的头像
          nisky

          我这里依然有问题….我在哪里可以找到你的邮箱?

  5. driodren 的头像
    driodren

    我从vim.org下载的txtbrowser.zip为什么没有.ctags文件
    (xbeta注:最新版本已经不再需要此文件,本文有待更新。 )

  6. 李二嫂的猪 的头像

    俺是来等 TC 更新说明文章的,先占个座。

    1. 5300游戏 的头像

      更新了好多功能,期待

  7. 5300游戏 的头像

    Total Commander 7.55 public beta 1发布了

  8. 知无 的头像
    知无

    我的显示这个(三行):
    “Taglist:Failed to generate tags for D:Program filesVimTextrfc959.txt
    ctags: Uuknown language “txt” in “language-force” option^@
    请按 ENTER 或其他命令继续”

    就上面这些,最后左边目录这一栏只有一个文件路径。
    这是什么问题?求助

    1. ypguo 的头像
      ypguo

      试试最新版本吧, 貌似这是一个已知bug. 或者打上taglist.vim的修正patch应该就可以吧.

  9. 知无 的头像
    知无

    再补充一个弱一点的问题:TxtBrowser 和 VOOF 是不是可以并存(见笑,第一次安插件)。
    (xbeta注:当然可以。我就是装了两个 )

    1. ypguo 的头像
      ypguo

      理论上是可以的吧, 不知道有人试过没有

  10. 知无 的头像
    知无

    很好,问题已解决,不是bug,是txtbrowser拷错了,多建了一个plugin文件夹,是直接从用TC在压缩包里拷出的,所以错了。
    郭老大辛苦了,更新挺快的,txtbrowser-1.2.5已装。

  11. 不需寻找 的头像
    不需寻找

    小提示:
    在 ubuntu 下,txtbrowser 调用 taglist 时报 ctags 参数错。这是因为 ubuntu 安装 emacs 包中有 GNU ctags,而 taglist 不支持 GNU ctags。
    要安装 Exuberant ctags,不能用默认的 GNU ctags。
    在新立得中可以找到 Exuberant ctags。

  12. Leon 的头像
    Leon

    “.ctags”文件在哪里呢?

  13. 梧桐 的头像

    新版本的命令已经改了,不再是:TxtbrowserSearch 之类的,改成了:TSearch这样的短写,善用佳软还是改下吧,以防不知道的没办法用。

  14. 免烧砖机 的头像

    Vim 非常不错。linux的文本编辑非常好

  15. […] TxtBrowser: 在 Vim 中高效处理纯文本 […]

发表回复

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据