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

Posted

技术标签:

【中文标题】如何在 vim 的 Taglist 窗口中显示变量【英文标题】:How to display variables in Taglist window in vim 【发布时间】:2010-03-05 18:46:26 【问题描述】:

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

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

(来源:sourceforge.net)

【问题讨论】:

【参考方案1】:

在 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 具有相似的值。

对于其他语言,存在不同的变量。

【讨论】:

【参考方案2】:

据我所知,Taglist 插件只显示有文件的变量 范围。它不显示只有函数作用域的变量。

为了快速测试,只需在源代码的开头添加任何类型的变量 文件,保存源文件,将光标设置到 taglist 窗口中 然后按 u 更新 taglist。现在这个变量应该出现在 taglist 窗口中。 这适用于我的 C 文件。

顺便说一句:

...我已经使用这个命令生成了我的 ctags

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

你的意思是你为taglist插件生成你自己的标签文件吗 使用这些 ctags 选项? 据我所知 taglist 使用它自己的 ctags 选项并生成一个临时的 标记文件。用户对 ctags 选项和标签文件没有影响。

【讨论】:

使用 let tlist_cpp_options 设置 taglist 如何执行 ctags 的选项。 (:help taglist-extend) 正如回答的那样,它会即时执行 ctags 并以这种方式显示结果。它不使用 ctags 文件。

以上是关于如何在 vim 的 Taglist 窗口中显示变量的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Vim 上使用 C-] 和 taglist

Vim ctags:我们可以在不关闭 taglist 窗口的情况下在 taglist 窗口和源代码窗口之间切换焦点吗?

vim Tlist命令

vim Tlist命令

有没有人使用 Scala 的 vim taglist 插件?

打开时 VIM 和 taglist 坚持文件