В настоящее время я работаю над проектом C, который содержит более 50 файлов .h и .c. Я хотел бы знать, есть ли быстрый способ поиска определенных строк кода (например, ctrl + f для windows, например), без необходимости фактически искать каждый файл по одному.
заранее спасибо
В Linux / Unix есть инструмент командной строки grep
вы можете использовать для поиска нескольких файлов для строки. Например, если бы я хотел искать strcpy
во всех файлах:
~/sandbox$ grep -rs "strcpy" * test.c: strcpy(OSDMenu.name,"OSD MENU");
-r
дает поиск рекурсивно, поэтому вы получаете все файлы во всех каталогах (от текущего). -s
игнорирует предупреждения, если вы работаете с нечитаемыми файлами.
Теперь, если вы хотите найти что-то обычай, и вы не можете вспомнить, что есть варианты, такие как -i
чтобы разрешить поиск в insenstive.
~/sandbox$ grep -rsi "myint" * test.c: int myInt = 5; test.c: int MYINT = 10;
Вы также можете использовать регулярные выражения, если вы забыли точно, что именно вы искали (действительно, имя, «grep» происходит из команды sed g / re / p – global / regular expression / print:
~/sandbox$ grep -rsi "my.*" * test.c: int myInt = 5; test.c: int MYINT = 10; test.c: float myfloat = 10.9;
установите cygwin, если вы не используете * nix и используете find / grep, например
find . -name '*\.[ch]' | xargs grep -n 'myfuncname'
Вы можете использовать grep для поиска файлов с помощью терминала / командной строки.
grep -R "string_to_search" .
-R быть рекурсивным, искать во всех подкаталогах тоже
Тогда строка, которую вы хотите
Тогда это место,. для текущего каталога
Если вы используете текстовый редактор и оболочку, то вы можете использовать инструменты оболочки, такие как grep
.
grep -R "some pattern" directory
Однако вы должны использовать IDE, такую как Eclipse (это не только для Java), Netbeans (есть плагин C) или KDevelop. У IDE есть сочетания клавиш для таких вещей, как «найти всюду, когда вызывается выделенная функция».
Или, конечно, есть Emacs …
В windowsх вы можете использовать findstr, который найдет файлы, содержащие строки, которые либо точно совпадают, либо регулярные выражения соответствуют указанной строке / шаблону.
findstr /?
из командной строки даст вам возможность использования. Он также может переписывать подкаталоги (/ s).