Как я могу сказать 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.