Как вы ищете в своих собственных библиотеках исходного кода? - PullRequest
19 голосов
/ 26 января 2010

Я пишу / изменяю код в нескольких форматах файлов, таких как perl, html, css, php, javascript, скрипт autohotkey, ... и т. Д.

Я часто ищу в своей личной библиотеке исходного кода примеры синтаксисаили сложная логика для повторного использования в новом коде.Или я буду искать в дереве каталогов ссылки на код для конкретной строки (например, все ссылки на определенный стиль CSS в perl, php, html и javascript).Иногда я даже ищу такие загадочные строки, как = ~, потому что я ищу определенное регулярное выражение в одной из моих программ на Perl.

Иногда я ищу в существующем коде, используя copernic, но, к сожалению, он может искать только слова иавтоматически игнорирует любой синтаксис программирования.Поиск файлов в Windows 7 выглядит хуже, чем поиск файлов в Windows XP.

У меня вопрос ... Как вы осуществляете поиск в своих собственных библиотеках исходного кода?

Ответы [ 16 ]

13 голосов
/ 26 января 2010

Раньше я использовал трюк find | xargs grep, пока не нашел ack . Теперь я использую это совсем немного.

6 голосов
/ 26 января 2010

С Cygwin:

$ find /path/to/lib -name \*.pm | xargs grep -l foo

Обязательно цитируйте фанки операторов, чтобы оболочка оставляла их в покое, например, ,

$ find . | xargs grep '=~'
5 голосов
/ 26 января 2010

Я обычно использую функцию поиска в моей IDE (nuSphere phpEd). Это достаточно быстро, и позволяет мне фильтровать по типам файлов. Средство поиска Windows бесполезно, и в каждой новой версии ему становится хуже.

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

3 голосов
/ 26 января 2010

Загрузите Cygwin и научитесь использовать Grep , который входит в комплект. Вы можете получить нативную версию grep, но у Cygwin есть много полезных вещей, поэтому я просто устанавливаю все доступные пакеты.

3 голосов
/ 26 января 2010

Используйте Google Desktop для индексации и полнотекстового поиска ваших исходных файлов.

1 голос
/ 26 января 2010

OSX имеет нечто под названием SpotLight и командный интерфейс, называемый mdfind Это лучшие инструменты для локального поиска, которые вы можете использовать, если используете Mac.

1 голос
/ 26 января 2010

Я открываю проект (ы), который, по моему мнению, находится в нужном коде, и использую опцию моего редактора «Найти в проекте».

0 голосов
/ 02 марта 2010

См. Исходный код SD Поисковая система . Это разбивает исходный код на фрагменты, соответствующие элементам каждого языка (ключевые слова, идентификаторы, строки, константы, числа, операторы). Вы можете сформулировать поиск, ограниченный только одним типом (кода) файла, определенным набором файлов, идентификаторами, соответствующими foo во всех файлах, setc.

Поисковая система предварительно индексирует код, чтобы разрешить поиск по тысячам файлов намного быстрее, чем grep. Он отображает попадания в одном окне графического интерфейса и полный исходный код выбранного попадания в другом. Вы можете запустить свой редактор по исходному коду.

0 голосов
/ 28 января 2010

Ссылка, предоставленная Пеккой, дала мне лучший ответ.

Powergrep - это решение, наиболее близкое к тому, что я искал. Это не идеально, но для решения Windows GUI ... Мне нравится.

0 голосов
/ 27 января 2010

Поскольку я провожу большую часть дня, отчаянно набирая в Emacs случайные биты кода в тщетной надежде, что один из них сделает что-то полезное, я часто использую команду emacs find-dired :

  • Meta-x find-dired
  • Введите путь к каталогу, в котором, я думаю, я найду интересный код
  • Когда он запрашивает у меня аргументы поиска, введите (например): -name '*.rb'
  • Когда он вызывает список подходящих файлов, %m., чтобы выбрать их все (yay для очевидного сопоставления клавиш Emacs)
  • Затем meta-A и введите строку поиска.
  • Meta-, (есть еще одно очевидное сопоставление клавиш), чтобы перейти к следующему матчу.

Если это не великолепный пример инструмента за 20 долларов, который используется для решения проблемы за десять центов, я не знаю, что это такое.

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