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. 我执行下面这一步后:
    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.2.3), 安装后只需要为taglist.vim的bug(:help txt-faq, 7.1节)打上fix(打一次就够了, 升级时不需要再打), 不需要再手动转换编码格式, 也不需要再移动.ctags文件了. 从此以后, 和encoding相关的问题应该不会再有了^)^

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

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

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

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

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

      • 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给我, 希望我能帮上忙!

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

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

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

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

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

回复 caixw 取消回复

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