图像显示全局变量A类,但局部变量不能在tagbar中显示,为什么?我想要标签栏显示局部变量str,m,n以及如何设置??
答案 0 :(得分:8)
ctags 解析的内容取决于语言;基于屏幕截图,您对C / C ++感兴趣,它不会这样做。我不知道原因,但我想:
Exuberant Ctags 解析器可以使用基于正则表达式的自定义语言定义进行扩展(请参阅--langdef=<language>
和--regex-<language>
参数)。如果你能为局部变量提出一个好的模式,你可以解析它们。
答案 1 :(得分:2)
Exuberant Ctags支持将局部变量作为标记,默认情况下它们只是关闭。我想他们会为任何大小的项目制作你的标签文件,并且我从来没有因为这个原因而打开它们(我的标签文件已经很多兆字节)。但是,如果您想尝试一下,只需在生成标记文件时将--c++-kinds=+l
(假设是c ++)添加到ctags
命令中即可。
答案 2 :(得分:0)
首先,tagbar显示来自ctags和ctags的所有标签默认不处理函数原型,外部变量和局部变量(在shell中尝试这个:ctags --list-kinds = c ++);
第二,tagbar的tagbar_type_cpp变量用于此:
let g:tagbar_type_cpp = {
\ 'kinds' : [
\ 'd:macros:1',
\ 'g:enums',
\ 't:typedefs:0:0',
\ 'e:enumerators:0:0',
\ 'n:namespaces',
\ 'c:classes',
\ 's:structs',
\ 'u:unions',
\ 'f:functions',
\ 'm:members:0:0',
\ 'v:global:0:0',
\ 'x:external:0:0',
\ 'l:local:0:0'
\ ]
\ }
看看最后两行。
就是这样。