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

Я пишу/изменяю код в нескольких форматах файлов как жемчуг, HTML, css, php, JavaScript, сценарий автогорячей клавиши... и т.д.

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

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

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

19
задан mjv 26 January 2010 в 20:25
поделиться

16 ответов

Я обычно использую функцию поиска в моей IDE (NUSPHELE PHPED). Он достаточно быстрый, и позволяет мне фильтровать по типам файлов. Поиск окон Windows бесполезно, и как-то удается, чтобы ухудшиться в каждой новой версии.

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

5
ответ дан 30 November 2019 в 03:59
поделиться

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

0
ответ дан 30 November 2019 в 03:59
поделиться

имеют последовательную схему именования. Это memset () или setmem ()? INatealizeuart () или uartinitialize () или uartinitialize () или uartinit ()?

0
ответ дан 30 November 2019 в 03:59
поделиться

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

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

Когда я должен сделать этот вид поиска (то есть я хочу найти точную часть кода) , я использую «Поиск в каталоге» или «Поиск в каталогах Regex» Fonationnality Eclipse PDT (IDE я работаю) или в конечном итоге используя GREP на командной строке Отказ

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

0
ответ дан 30 November 2019 в 03:59
поделиться

С Cygwin:

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

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

$ find . | xargs grep '=~'
6
ответ дан 30 November 2019 в 03:59
поделиться

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

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

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

0
ответ дан 30 November 2019 в 03:59
поделиться

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

Тогда это просто случай какой-то комбинации "найти/загрянуть".

0
ответ дан 30 November 2019 в 03:59
поделиться

Числовые рецепты в C (или C++ сейчас !).

-121--3505024-

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

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

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

grep '^foo' **/*.c

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

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

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

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

-121--2205816-

Функциональность поиска TotalCommander

0
ответ дан 30 November 2019 в 03:59
поделиться

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

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

Вам не нужен ваш метод status _ str - Джанго автоматически предоставляет get _ status _ дисплей () , который делает то же самое.

Для обращения можно использовать следующее:

def set_order_status(self, val):
    status_dict = dict(ORDER_STATUS)
    self.status = status_dict[val][0]

Теперь вы можете сделать:

order.set_order_status('Done')
-121--1844220-

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

-121--2205823-

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

13
ответ дан 30 November 2019 в 03:59
поделиться

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

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

0
ответ дан 30 November 2019 в 03:59
поделиться

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

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

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

grep '^foo' **/*.c

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

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

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

Примечание. Здесь использование Из + с -EXEC : это заменяет использование xargs .

0
ответ дан 30 November 2019 в 03:59
поделиться

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

-121--2205826-

репостинг ответа от здесь

Некоторое время назад мне пришлось найти местоположение данного IP-адреса. Мы получили IP из запроса. Есть свободные базы данных, которые дали нам это сопоставление. В IPv4, когда мы говорим IP как «a.b.c.d» это по существу a * (256 ^ 3) + b * (256 ^ 2) + c * (256) + d .

http://www.aboutmyip.com/AboutMyXApp/IP2Integer.jsp

поэтому, когда вы говорите, что хотите IP-адрес, начинающийся с «a», вы ищете IP-адреса между * 256 ^ 3 и * 256 ^ 3 256 * (256 ^ 2) (b = 256) + 256 * (256) (c = 256) + 256 (d = 256) (нижний/верхний предел может немного отличаться в зависимости от того, хотите ли вы включить/исключить пределы).

При этом существуют определенные IP-адреса, зарезервированные для определенных целей (например, 127,0,0,1, который является локальным хостом, 0,0,0,0 не может быть IP и т.д.).

Таким образом, ваш запрос linq будет

from i in iList where i >= MIN && i <= MAX select i;

, где iList является вашим начальным списком MIN является вашим минимальным значением для диапазона MAX является вашим максимальным значением для диапазона

-121--924183-

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

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

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

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

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

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

0
ответ дан 30 November 2019 в 03:59
поделиться
Другие вопросы по тегам:

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