Я пишу/изменяю код в нескольких форматах файлов как жемчуг, HTML, css, php, JavaScript, сценарий автогорячей клавиши... и т.д.
Я часто ищу свою персональную библиотеку исходного кода для примеров синтаксиса или сложной логики для повторного использования в новом коде. Или, я перерою дерево каталогов для ссылок кода на конкретную строку (например, всех ссылок на конкретный стиль css в жемчуге, php, HTML и JavaScript). Иногда я даже ищу загадочные строки как = ~, потому что я ищу конкретное регулярное выражение в одной из моих программ жемчуга.
Иногда я ищу существующий код с помощью copernic, но к сожалению он может только искать слова и автоматически игнорирует любой синтаксис программирования. Поиск файла Windows 7 кажется хуже, чем поиск файла Windows XP.
Мой вопрос... Как Вы перерываете свои собственные библиотеки исходного кода?
Я обычно использую функцию поиска в моей IDE (NUSPHELE PHPED). Он достаточно быстрый, и позволяет мне фильтровать по типам файлов. Поиск окон Windows бесполезно, и как-то удается, чтобы ухудшиться в каждой новой версии.
В любом случае, я задал вопрос о программированных программах по программам поиска программирования некоторое время назад. Может быть, один из ответов помогает.
В среде Windows я использую examine32. Это довольно удобный универсальный поиск строки (это действительно действительная фраза? :-)).
имеют последовательную схему именования. Это memset () или setmem ()? INatealizeuart () или uartinitialize () или uartinitialize () или uartinit ()?
Скачать Cygwin и научиться использовать GREP , который включен в него. Вы можете получить нативную версию GREP, но Cygwin имеет много полезных вещей, поэтому я просто устанавливаю все доступные пакеты.
Когда я должен сделать этот вид поиска (то есть я хочу найти точную часть кода) , я использую «Поиск в каталоге» или «Поиск в каталогах Regex» Fonationnality Eclipse PDT (IDE я работаю) или в конечном итоге используя GREP
на командной строке Отказ
(Для тех, кто находится на Windows и / или не нравится CLI, есть некоторые графические инструменты, которые действуют как GREP
- я видел, что некоторые коллеги используют их)
С Cygwin:
$ find /path/to/lib -name \*.pm | xargs grep -l foo
Обязательно процитируйте функциональные операторы, чтобы оболочку оставляют их в одиночку, E.G. ,
$ find . | xargs grep '=~'
Так как большую часть дня я бешено набрасываю в Emacs случайные биты кода в тщетной надежде, что один из них сделает что-нибудь полезное, я часто использую команду emacs find-dired:
Meta-x find-dired
-имя '*.rb'
%m.
, чтобы выбрать их все (да, для очевидного отображения ключей Emacs)-мета-A
и ввести строку поиска. Meta-,
(есть еще одно очевидное отображение клавиш), чтобы перейти к следующему совпадению. Если это не грандиозный пример использования инструмента за $20 для решения десятицентовой проблемы, то я не знаю, что это такое.
Обычно я знаю, что собираюсь сделать что-то немного придирчивое, так что я вбиваю комментарий рядом с разделом. В комментарии всегда должно быть достаточно ключевых слов, чтобы я мог найти то, что мне нужно.
Тогда это просто случай какой-то комбинации "найти/загрянуть".
Числовые рецепты в 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
.
Я открываю проект (ы), в который я полагаю, нужный код включен и использует вариант моего редактора «Найти в проекте».
Вам не нужен ваш метод 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 . Теперь я использую это немного.
Ссылка, предоставленная пеккой, предоставила лучший ответ для меня до сих пор.
PowerGrep - это решение, которое, ближайшее к тому, что я искал. Это не идеально, но для решения Windows GUI ... мне это нравится.
Для C-кода я использую стиль кодирования BSD, который утверждает, что функция, названная FOO
, должна быть определена таким образом:
char * foo(int x) { ... }
с этим стилем определение функции является единственным местом в исходном коде. где имя функции может появиться в начале строки. Тогда лишь вопрос, чтобы использовать GREP:
grep '^foo' **/*.c
Этот трюк фильтрует использование функции, концентрироваться на определении .
Когда ** / *. C
дает слишком много имен файлов (для действительно больших исходных кодов деревьев), то найти
: необходимо использовать:
find src -name \*.c -exec grep '^foo' '{}' +
Примечание. Здесь использование Из +
с -EXEC
: это заменяет использование xargs
.
Используйте рабочий стол 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.
Используйте рабочий стол Google для индексирования и полнотекстового поиска исходных файлов.
См. SD Source Code Search Engine. Она разбивает исходный код на фрагменты, соответствующие элементам каждого языка (ключевые слова, идентификаторы, строки, константы, числа, операторы). Вы можете сформулировать поиск, ограниченный только одним типом (кодом) файла, определенным набором файлов, идентификаторами, соответствующими foo во всех файлах, и т.д.
Поисковая система предварительно индексирует код, чтобы обеспечить поиск по тысячам файлов намного быстрее, чем grep. Она показывает вам совпадения в одном окне графического интерфейса, а полный исходный код выбранного совпадения - в другом. Вы можете запустить свой редактор на исходном коде.