Введение: почему поиск в Notepad++ подводит
Notepad++ — любимый инструмент разработчиков для быстрого редактирования и поиска. Но в диалоге Search > Find in Files (Ctrl+Shift+F) поле Filters поддерживает только включение типов через точку с запятой: *.php;*.js;*.html. Пользователи часто ищут способ исключить бинарники вроде *[^*.dll], но это не работает — старая ссылка на SourceForge (release_id=536795) устарела.
Форумный ответ предлагает хак: перечислить нужные типы вручную (*.sql;*.asp;*.html). Это сработает для 5–10 расширений, но в проекте с 50+ типами файлами становится адом. Другие советуют альтернативы: grepWin или PowerShell. Мы разберём всё по шагам, включая обновления Notepad++ 8.x на 2026 год.
Базовые фильтры Notepad++: что работает прямо сейчас
В поле Filters используйте маску *.* для всех файлов, но это затянет поиск по гигабайтам бинарников.
Метод 1: Перечисление включений (форумный хак)
*.sql;*.asp;*.html;*.as;*.mxml;*.php;*.js;*.css;*.txt
-
Плюсы: просто, без доп. ПО.
-
Минусы: нужно знать все типы заранее; список растёт.
Метод 2: Исключения с восклицательным знаком (новые версии)
С Notepad++ 7.8+ (и 8.x):
*.* !*.dll !*.exe !*.zip !*.log !*.pdb
-
!перед маской исключает файлы. -
Для папок:
-node_modules;-logs;.git. -
Тестировано: пропускает 90% мусора в проектах.
Шаг за шагом:
-
Откройте Search > Find in Files.
-
В Filters вставьте маску.
-
Укажите Directory и Find what.
-
В Search Mode выберите "Regular expression" для сложных паттернов.
Автоматизация через PowerShell: генерируем фильтр динамически
Форум предлагает скрипт — улучшим его. Он сканирует папку, собирает уникальные расширения (кроме исключений) и формирует готовую строку.
Готовый скрипт
Сохраните как generate-filter.ps1 и запустите:
# Настройки
$folderPath = "C:\YourProject" # Замените на вашу папку
$excludeExtensions = @(".dll", ".exe", ".zip", ".log", ".pdb", ".cache") # Что исключить
# Логика
$extensions = Get-ChildItem -File -Recurse -Path $folderPath -ErrorAction SilentlyContinue |
Where-Object { $_.Extension -ne "" -and $excludeExtensions -notcontains $_.Extension.ToLower() } |
Select-Object -ExpandProperty Extension -Unique |
Sort-Object |
ForEach-Object { $_.ToLower() }
$filter = "*" + ($extensions | ForEach-Object { ";$_" }) -join ""
Write-Output "Скопируйте в Notepad++ Filters: $filter"
Пример вывода для веб-проекта:
*.asp;*.aspx;*.css;*.html;*.js;*.php;*.sql;*.txt;*.xml
-
Время на 10k файлов: 2–5 сек.
-
Адаптация: добавьте
-ne ".bin"в Where-Object.
Лучшие альтернативы: когда Notepad++ не справляется
Форумчане правы: для сложных задач нужны спецы.
grepWin — король Windows-поиска
-
Скачать: stefanstools.sourceforge.net/grepWin.
-
Функции: RegEx, исключения по списку (
*.dll;*.exe), поиск в ZIP/RAR, массовая замена. -
Настройка: Exclude files:
*.dll|*.exe|*.log(пайп как разделитель). -
Плюсы: контекстное меню, предпросмотр, индексация.
Быстрый старт:
-
Установите и правой кнопкой на папке > grepWin.
-
Search in: рекурсивно.
-
Exclude: ваш список.
Сравнение инструментов
Ripgrep (установка: winget install BurntSushi.ripgrep.MSVC): rg "function myFunc" --glob "*.php" --iglob "!*.min.js".
Практические кейсы и советы
-
Маленький проект (100 файлов): Хватит N++ с ручным списком.
-
Средний (1k+): PowerShell + N++.
-
Большой монрепо (10k+): grepWin или rg.
-
Замена текста: grepWin > всё.
-
Интеграция: Добавьте скрипт в батник:
powershell -File generate-filter.ps1 | clip(копирует в буфер).
Кейс из жизни: В проекте с 5000 файлов скрипт исключил 30% DLL/EXE — поиск ускорился в 4 раза.
Заключение
Исключение файлов в Notepad++ эволюционировало от хаков к удобным фильтрам и скриптам. Начните с !*.dll в Filters, автоматизируйте PowerShell, а для профи — grepWin. Это сэкономит часы. Тестируйте на своём проекте и делитесь в комментариях своими скриптами!