如何使用vim tagbar中的包为perl分组子例程?

时间:2017-01-16 09:35:41

标签: perl vim ctags tagbar

有一段时间以来,我一直在使用带有vim的perl。在此之前我使用IntelliJ和perl的插件。我唯一缺少的是vim标签栏中的不同视图。我已将其配置为使用通用ctags运行,它显示了包,子例程和常量的类别。但是有一个示例脚本文件有三个包,其中每个包都有一个create()方法,这些方法都显示在“子例程”类别下。包名称都显示在“包”下面。而已。这是一个非常平坦的观点。

我想要的是(另外或作为替代)树视图,其中我拥有属于附加包的所有方法。但到目前为止我无法让它工作:-(我很感激有关如何配置tagbar以在Perl中获得更像树状视图的任何想法。

1 个答案:

答案 0 :(得分:1)

我相信你的标签不是完全合格的,这会导致看到一切都是扁平的。您应该使用--extra = q标志生成perl标记;例如:

ctags -f tags --recurse --totals \ 
--exclude=blib --exclude=.svn \ 
--exclude=.git --exclude='*~' \ 
--extra=q \ 
--languages=Perl \ 
--langmap=Perl:+.t

此外,请确保在.vimrc中的关键字字符列表中添加冒号,以便您可以在Module :: Names上完成:

set iskeyword+=:

注意:我还没有使用通用ctags,所以我无法确认这是你的问题,但我确实检查了他们的文档(http://docs.ctags.io/en/latest/news.html?highlight=extra%3Dq),这个标志仍在使用,默认情况下不会。