Как найти все вхождения переменной в Vim? - PullRequest
8 голосов
/ 08 марта 2012

В vim, как найти все вхождения переменной в файлах в определенном каталоге?

Я знаю, что vimgrep иногда работает, но ищет только текст и не работает, если в других классах есть переменныес тем же именем, и я хочу, чтобы переменная только в определенном классе.

Что мне делать?Или я должен вместо этого получить IDE?

Ответы [ 2 ]

12 голосов
/ 08 марта 2012

Зачем вам использовать другую IDE, если она у вас уже есть?Vim - это среда разработки, которую можно настраивать и использовать для разных языков.

Вы можете использовать cscope для создания базы данных вашегокод.Эта база данных

  • Позволяет искать код для:
    • всех ссылок на символ
    • глобальных определений
    • функций, вызываемых функцией
    • функции, вызывающие функцию
    • текстовая строка
    • шаблон регулярного выражения
    • файл
    • файлы, включая файл

Дополнительные функции Cscope:

  • На основе проклятий (текстовый экран)
  • Создана информационная база данных для более быстрого поиска ипозже ссылка
  • Нечеткий синтаксический анализатор поддерживает C, но достаточно гибок, чтобы быть полезным для C ++ и Java, а также для использования в качестве обобщенной «базы данных grep» (используйте ее для просмотра больших текстовых документов!)
  • Имеет режим командной строки для включения в сценарии или в качестве бэкэнда для графического интерфейса пользователя / внешнего интерфейса
  • Работает во всех разновидностях Unix, а также в большинстве операционных систем, контролируемых монополиями.

Как только ваша база данных будет создана, вы можете просмотреть ееgh использование ваших переменных, функций и т. д.


Edit (немного OT):
еще одна классная вещь, которая очень удобна при работе с Vim над кодомэто плагин taglist , который использует Ctags :

Плагин «Tag List» представляет собой плагин для браузера исходного кода для Vim и предоставляет обзор структурыфайлов исходного кода и позволяет эффективно просматривать файлы исходного кода для разных языков программирования.

5 голосов

cscope пошаговый пример

Перейдите в базовый каталог вашего проекта и запустите:

cscope -Rb

Создает файл cscope.out, который содержит проанализированную информацию. Генерация достаточно быстрая, даже для таких крупных проектов, как ядро ​​Linux.

Откройте vim и запустите:

:cs add cscope.out
:cs find s my_func

s является мнемоникой для symbol. Другие cscope предоставленные запросы также возможны.

Интерфейс cscope (ouside Vim) также имеет запрос присваивания переменной (подмножество вхождений символов), который Vim, похоже, не предлагает (?)

Добавляет список абонентов в список быстрых исправлений, который вы можете открыть с помощью:

:copen

Перейдите к линии, которая вас интересует, и нажмите Enter, чтобы прыгнуть туда.

Смотри также:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...