Vim - Показать тип данных

Я обычно кодирую большинство моих проектов на C в Vim. Мне удобно пользоваться навигацией, поиском и заменой, а также индексированием через Ctags/Cscope.

Одна из возможностей, которую я хотел бы иметь, по возможности, - это сопоставление клавиш, которое будет отображать тип данных для переменной под курсором на экране.

Например, если мой курсор находится на переменной, "test123" (то есть: int test123 = 0) есть способ иметь тип (int) и некоторые другие данные о переменной, показанной на другой вкладке в Vim?

Кроме того, есть ли что-то подобное, что бы сделать то же самое для структурной переменной и показать список всех его членов на дескриптивной вкладке, а также тип (т.е. struct)?

Я также заметил, что иногда во время кодирования у меня есть вкладка под названием "[Scratch] [Preview]" наверху Vim, которая, как представляется, выполняет это требование, но я понятия не имею, что ее запускает (поиск и Ctag поиск не вызывает его срабатывания). Это выглядит так:

name: myStruct::instanceOfStrct|  2 cmd: /^   int instanceOfStrct;$/
.. (up a dir)                  |  3 kind: m
</code/test/test.c             |  4 struct:   myStruct
|+config/                      |  5 access:   public
|+lib/                         |  6 filename: /code/test/test.c

Я думаю, что это то, что уже существует в Vim, но я не знаю, как с ним работать.

Спасибо.

Ответ 1

Я не знаю ни одного плагина, который делает то, что вы хотите, однако это должно быть вполне возможно с помощью libclang. Существует вилка clang_complete, которая добавляет функциональность "перейти к определению", которая близка к тому, что вы хотите. Однако разработка на этом плагине, похоже, застопорилась.

Кроме того, при выполнении автозаполнения появляется буфер нуля, чтобы получить дополнительную информацию о конкретном завершении. Его можно включить и отключить с помощью параметра completeopt.

Ответ 2

Проверьте мой плагин vim-ctype. Он использует лязг двигателя.