Как отобразить переменные в окне Taglist в vim
Я использую плагин Taglist в vim. В окне taglist я могу видеть теги, такие как пространства имен, классы, структура, функции, но не переменные. Я видел скриншот (прилагается ниже) на сайте Taglist, на котором была эта информация. Я использую Vim 7 и Exuberant Ctags 5.8, и я сгенерировал свои ctags с помощью этой команды
ctags --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++
2 ответа
Есть переменная s:tlist_def_cpp_settings
в плагине Taglist (.vim/plugin/taglist.vim), который определяет, какие элементы показываются по умолчанию.
Я расширил это до:
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 вы также можете определить tlist_cpp_settings
в вашем .vimrc
с аналогичным значением.
Для других языков существуют разные переменные.
Насколько я знаю, плагин Taglist показывает только те переменные, которые имеют область видимости файла. Он не показывает переменные, которые имеют только область действия функции.
Для быстрого теста просто добавьте переменную любого типа в начале вашего исходного файла, сохраните исходный файл, установите курсор в окно списка тегов и нажмите u, чтобы обновить список тегов. Теперь эта переменная должна появиться в окне taglist. Это работает для моих C файлов.
Кстати:
... и я сгенерировал мои ctags, используя эту команду
ctags --C++- types=+p --fields=+iaS --extra=+q --language-force=C++
Вы имеете в виду, что вы генерируете свой собственный файл тегов для плагина taglist, используя эти опции ctags? Насколько мне известно, taglist использует собственные параметры ctags и создает временный файл тегов. Пользователь не имеет никакого влияния на параметры ctags и файл тегов.