Я использую Vim для проекта C++, что я начал продолжать работать, и я проводил много времени, в последнее время просматривающего существующий код для получения подвешивания его. Для создания просмотра легче у меня есть установка ctags и cscope в Vim, чтобы перейти к определениям и найти ссылки.
Однако я нахожу, что ни один из них не достаточно интеллектуален для знания, которые классифицируют членскую переменную/функцию, принадлежит. Например:
class Square;
...
Square a;
...
a.rotate();
Попытка найти определение rotate()
поднимет функции членства от других классов также, как Треугольник. Я использую g]
в Vim для перевода в рабочее состояние списка соответствия тегам и к счастью ctags перечисляет связанный класс для каждой записи. Однако, когда существует 200 классов с той же функцией членства, это может быть утомительно для выслеживания корректного тега.
Кроме того, если я в функциональном определении:
Square::rotate()
{
...
}
Попытка найти все вызовы к rotate()
использование cscope поднимает вызовы к и другим классам Треугольника, поворачивают функции.
Из-за этого я перехожу к Визуальному Slickedit время от времени для нахождения определения или ссылки на членскую переменную или функцию членства. Есть ли какой-либо способ, которым я могу выполнить это в старом добром Vim?
SrcExpl может быть тем плагином, который вам нужен. Попробуйте.
Похоже, это будет хороший кандидат http://vim.wikia.com/wiki/C%2B%2B_code_completion . Мне повезло, что он делал подобные вещи на Java. Не совсем уверен, что он дает вам все, что вы пытаетесь сделать.
Вы можете попробовать плагин taglist , хотя он в некоторой степени страдает той же проблемой, что и встроенная поддержка ctag. Он работает так же, как и SrcExpl.
Раньше я искал решения лучше, чем cscope, но так и не нашел. В конце концов, возможно, отсутствие интеллекта у cscope не так уж и беспокоит.
Проблема в том, что на рынке нет мощной и открытой библиотеки intellisense. Возможно CodeInsight .