如何在 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 ctags:我们可以在不关闭 taglist 窗口的情况下在 taglist 窗口和源代码窗口之间切换焦点吗?