如何在vim的Taglist窗口中显示变量

9

我在使用vim中的Taglist插件。在taglist窗口中,我可以看到像命名空间、类、结构体、函数等标签,但看不到变量标签。我在Taglist网站上看到了一个屏幕截图(如下所示),其中包含了这些信息。我正在使用Vim 7和Exuberant Ctags 5.8,并且已经使用以下命令生成了我的ctags。

ctags --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++

alt text
(source: sourceforge.net)

2个回答

8
在Taglist插件(.vim/plugin/taglist.vim)中有一个名为s:tlist_def_cpp_settings的变量,用于定义默认显示哪些元素。
我将其扩展为: let s:tlist_def_cpp_settings = 'c++;n:namespace;v:variable;d:macro;t:typedef;' . \ 'c:class;g:enum;s:struct;u:union;f:function;m:member;' . \ 'p:prototype' 根据taglist手册,您也可以在您的.vimrc文件中定义tlist_cpp_settings,并设置类似的值。
对于其他语言,存在不同的变量。

1
据我所知,Taglist插件仅显示具有文件作用域的变量。它不会显示仅具有函数作用域的变量。
为了进行快速测试,只需在源文件开头添加任何类型的变量,保存源文件,将光标设置到taglist窗口中,并按u键更新taglist。现在,此变量应该出现在taglist窗口中。这适用于我的C文件。
顺便说一下:

... 我使用以下命令生成了我的ctags

ctags --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++

你的意思是你使用这些ctags选项为taglist插件生成自己的标签文件吗? 据我所知,taglist使用自己的ctags选项并生成临时标签文件。用户无法影响ctags选项和标签文件。

使用let tlist_cpp_options来设置taglist执行ctags的选项。 (:help taglist-extend) 如前所述,它会动态地执行ctags并显示结果。它不使用ctags文件。 - Bazman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接