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. Он использует лязг двигателя.