Как я могу сказать IntelliJ «Поиск в файлах» игнорировать сгенерированные файлы?


103

Мне нужно найти в файлах. Я хочу игнорировать или исключать сгенерированные файлы, такие как артефакты JAX-WS или классы в целевых папках. Как я могу сказать IDEA исключить эти файлы из поиска?


3
Да! И они всегда ставят полученные результаты в ТОП! Блин!
— SMBiggs

Ответы:


102

Создайте настраиваемую область, определяющую набор файлов, которые нужно включить / исключить из поиска.

  1. CTRL+ SHIFT+ Fдля диалога « Найти в пути ». (Пользователи Mac нажимают command+ shift+ F)
  2. В разделе « Область» выберите « Пользовательский» .

    Найти в пути

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

  4. В появившемся диалоговом окне нажмите +кнопку и выберите Локальный.
  5. На правой панели вы можете включать и исключать отдельные файлы, а также рекурсивно включать или исключать все файлы в папке.

Теперь, когда вы используете « Найти в пути» , используйте свою настраиваемую область, чтобы ограничить поиск файлов.

Из ссылки на « Найти в файлах» в вашем вопросе я подозреваю, что эти инструкции могут не применяться к вашей версии, но полезно знать, что эта функция существует и всегда есть 30-дневная ознакомительная версия.


2
Это работает. Спасибо. Я надеялся, что есть какой-то параметр или флажок, который я упустил из виду, для эффекта «игнорировать сгенерированные файлы».
— Freiheit

1
@Freiheit Возможно, вы также сможете настроить свой проект на игнорирование сгенерированных файлов, что по умолчанию исключит их из поиска и т.п. (если, конечно, вам не нравится видеть или вам нужны ваши сгенерированные файлы в IntelliJ).
— ajp15243

3
@ ajp15243 Это можно сделать в настройках -> Объем проекта
— :)

1
Для справки, эти шаги работают точно так же в IntelliJ Ultimate 13.
— kurtzbot 01

1
Хороший ответ @RobKielty :) Ты спас меня от часов ежедневных разочарований
— Shanimal

52

Я знаю, что уже поздно на вечеринку, и Роб ответил достойно. Я просто хотел бы добавить следующую альтернативу: если вы выбрали Customобласть действия (как в ответе Роба), а затем оставьте выбор на Project Files, это сделает поиск IntelliJ немного более избирательным, чем по умолчанию. Я не знаю, каковы точные различия, но особый интерес представляет то, что если вы отметите каталог как Excludedлибо с помощью Modulesвкладки в Project Structureнастройках, либо щелкнув правой кнопкой мыши каталог и выбрав Mark Directory As-> Excluded.

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

Я тестировал это в IntelliJ Ultimate 14.1.4. Я понятия не имею, как он ведет себя в других версиях, но подозреваю, что по крайней мере большая часть v14 будет вести себя так же.


Я пометил каталог как исключенный по ошибке, как его снова включить. Параметр контекста «Пометить каталог как» больше не отображается для этого каталога.
— coding_idiot 02

2
@coding_idiot Mark Directory Asпо-прежнему виден мне, когда я это делаю (тогда можно выбрать вариант Cancel Exclusion). Если это по какой-то причине у вас не работает, вы можете сделать то же самое, открыв Moduleнастройки ( Project Settings-> Modules-> <your module>). В этом диалоге все исключенные папки должны быть перечислены справа со значком xрядом, чтобы остановить исключение.
— Thor84no 02


16

Вы также можете поставить фильтр файла поиска, начинающийся со !знака для исключения. Пример поиска кода не в тестовых файлах Java: !*Test.java

Если у вас есть несколько типов файлов, вы можете разделить их ,знаком. Пример поиска только в файлах Kotlin и Groovy: *.kt,*.groovy

Это тоже может быть полезно.


Это полезно.
— javadba

4

Я использую следующий шаблон для исключения сгенерированных файлов

!file:*intermediates*/&&!file:*generated*/&&!lib:*..*

Как добавить этот узор, следуйте

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.