Подтвердить что ты не робот

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

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

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

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

Мой вопрос... Как вы просматриваете собственные библиотеки исходного кода?

4b9b3361

Ответ 1

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

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

Ответ 2

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

Ответ 3

С Cygwin:

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

Не забудьте указать фанк-операторов, поэтому оболочка оставляет их в покое, например,

$ find . | xargs grep '=~'

Ответ 4

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

Ответ 5

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

Ответ 6

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

Ответ 7

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

Ответ 8

Когда мне нужно выполнить такой поиск (т.е. я хочу найти точную часть кода), я использую функцию "поиск в каталоге" или "поиск в директории по регулярному выражению" с помощью fonctionnality Eclipse PDT ( IDE, с которым я работаю), или закончите использование grep в командной строке.

(Для тех, кто на окнах и/или не любит CLI, есть некоторые графические инструменты, которые действуют как grep - я видел, как некоторые его коллеги использовали их)

Ответ 9

Имейте последовательную схему именования. Это memset() или setmem()? InitializeUart() или UartInitialize() или UARTInitialize() или UARTInit()?

Ответ 10

В среде Windows я использую Examine32. Это довольно удобный генератор строк (это допустимая фраза?:-)).

Ответ 11

Для кода C я использую стиль кодирования BSD, в котором указано, что функция с именем foo должна быть определена следующим образом:

char *
foo(int x)
{
    ...
}

В этом стиле определение функции является единственным местом в исходном коде, где имя функции может отображаться в начале строки. Тогда это только вопрос использования grep:

grep '^foo' **/*.c

Этот трюк отфильтровывает использование функции, чтобы сосредоточиться на определении.

Когда **/*.c выводит слишком много имен файлов (для действительно больших деревьев исходного кода), тогда следует использовать find:

find src -name \*.c -exec grep '^foo' '{}' +

Обратите внимание на использование + с -exec: это заменяет использование xargs.

Ответ 13

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

Тогда это всего лишь случай какой-либо команды find/grep arseabout.

Ответ 14

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

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

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

Ответ 15

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

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

Ответ 16

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

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