Нахождение определений/ссылок участникам класса C++ в Vim

Я использую Vim для проекта C++, что я начал продолжать работать, и я проводил много времени, в последнее время просматривающего существующий код для получения подвешивания его. Для создания просмотра легче у меня есть установка ctags и cscope в Vim, чтобы перейти к определениям и найти ссылки.

Однако я нахожу, что ни один из них не достаточно интеллектуален для знания, которые классифицируют членскую переменную/функцию, принадлежит. Например:

class Square;
...

Square a;
...
a.rotate();

Попытка найти определение rotate() поднимет функции членства от других классов также, как Треугольник. Я использую g] в Vim для перевода в рабочее состояние списка соответствия тегам и к счастью ctags перечисляет связанный класс для каждой записи. Однако, когда существует 200 классов с той же функцией членства, это может быть утомительно для выслеживания корректного тега.

Кроме того, если я в функциональном определении:

Square::rotate()
{
    ...
}

Попытка найти все вызовы к rotate() использование cscope поднимает вызовы к и другим классам Треугольника, поворачивают функции.

Из-за этого я перехожу к Визуальному Slickedit время от времени для нахождения определения или ссылки на членскую переменную или функцию членства. Есть ли какой-либо способ, которым я могу выполнить это в старом добром Vim?

17
задан tj511 2 December 2009 в 05:42
поделиться

4 ответа

SrcExpl может быть тем плагином, который вам нужен. Попробуйте.

3
ответ дан 30 November 2019 в 14:45
поделиться

Похоже, это будет хороший кандидат http://vim.wikia.com/wiki/C%2B%2B_code_completion . Мне повезло, что он делал подобные вещи на Java. Не совсем уверен, что он дает вам все, что вы пытаетесь сделать.

1
ответ дан 30 November 2019 в 14:45
поделиться

Вы можете попробовать плагин taglist , хотя он в некоторой степени страдает той же проблемой, что и встроенная поддержка ctag. Он работает так же, как и SrcExpl.

1
ответ дан 30 November 2019 в 14:45
поделиться

Раньше я искал решения лучше, чем cscope, но так и не нашел. В конце концов, возможно, отсутствие интеллекта у cscope не так уж и беспокоит.

Проблема в том, что на рынке нет мощной и открытой библиотеки intellisense. Возможно CodeInsight .

1
ответ дан 30 November 2019 в 14:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: