我最近开始使用球拍,我做的第一件事就是尝试让 vim TagList 插件与它一起工作。但是,它根本不起作用。我可以打开球拍文件,并且 TagList 窗口将像打开文本文件一样空白。
根据扩展页面* 我已将以下内容添加到我的 ~/.vimrc 文件中:
let Tlist_Ctags_Cmd = 'ctags --langdef=racket --langmap=racket:.rkt --regex-racket=/^\(def[a-zA-Z0-9\-_\?\/\\]+[ \t]+([a-zA-Z0-9\-_\/\\\?]+)/\1/d,definition/'
let Tlist_racket_settings = 'racket;d:Definition'
额外的 ctags 内容也在我的 ~/.ctags 文件中,但 TList 吐出了关于我的设置行没有任何好处的错误。我最初尝试使用 ctags 现有的方案功能,但我没有得到相同的结果。要使用现有的方案功能,我在 ~/.vimrc 中尝试了以下操作
let Tlist_Ctags_Cmd = 'ctags --langmap=scheme:.rkt'
let Tlist_racket_settings = 'racket;f:Functions'
如果其他人对如何使其工作有任何想法,那么我将非常感激。
谢谢,
- 我也会在一个页面上发布一个指向 ctags 的链接,但它不会让我(新用户)。可以在扩展的 taglist 页面上找到指向它的链接。
编辑
来自命令行的 ctags
我可以从命令行使用 ctags。使用 TagList FAQ 页面上的 ctags 行进行测试,我得到以下信息:
$ cat ~/.ctags
--langdef=racket
--langmap=racket:.rkt
--regex-racket=/^\(def[a-zA-Z0-9\-_\?\/\\]+[ \t]+([a-zA-Z0-9\-_\/\\\?]+)/\1/d,definition/
--regex-racket=/^\(define\-syntax(\-rule)?[ \t]+([a-zA-Z0-9\-_\/\\\?]+)/\2/m,macro/
--regex-racket=/^\(define?[ \t]+(([a-zA-Z0-9\-_\/\\\?]+)[ \t]+\(lambda|\(([a-zA-Z0-9\-_\/\\\?]+))/\2\3/f,function/
$ ctags -f - --format=2 --excmd=pattern --fields=nks XMMSClient.rkt
defenum XMMSClient.rkt /^(define-syntax defenum$/;" m line:11
defxmmsc XMMSClient.rkt /^(define-syntax defxmmsc$/;" m line:20
libxmmsclient XMMSClient.rkt /^(define libxmmsclient (ffi-lib "libxmmsclient"))$/;" d line:5
如果我使用开关强制语言定义,或者如果我将语言更改为方案,则输出是相同的。
关于标签栏
在人们建议之前,我没有见过 TagBar。有趣的是,它只适用于对我的 .ctags 文件的更改。不幸的是,我没有找到像 TagList 那样显示所有加载缓冲区中的标签的设置,所以我更喜欢使用 TagList。
我会发布比较图像,但我认为它不会让我作为新成员。根据 romainl 的建议,我可以将 vim 文件类型设置为方案,它确实有效。然而,这似乎只是一个 80% 的解决方案,当根据扩展页面的文档似乎表明我所拥有的应该工作时。也许我应该考虑提交错误报告。
再次感谢,