Главная / Прочие материалы > Исключение типов файлов в поиске Notepad++: от хаков до профессиональных решений

Исключение типов файлов в поиске Notepad++: от хаков до профессиональных решений

Введение: почему поиск в 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: Перечисление включений (форумный хак)

text
*.sql;*.asp;*.html;*.as;*.mxml;*.php;*.js;*.css;*.txt

Метод 2: Исключения с восклицательным знаком (новые версии)

С Notepad++ 7.8+ (и 8.x):

text
*.* !*.dll !*.exe !*.zip !*.log !*.pdb

Шаг за шагом:

  1. Откройте Search > Find in Files.

  2. В Filters вставьте маску.

  3. Укажите Directory и Find what.

  4. В Search Mode выберите "Regular expression" для сложных паттернов.

Автоматизация через PowerShell: генерируем фильтр динамически

Форум предлагает скрипт — улучшим его. Он сканирует папку, собирает уникальные расширения (кроме исключений) и формирует готовую строку.

Готовый скрипт

Сохраните как generate-filter.ps1 и запустите:

powershell
# Настройки $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"

Пример вывода для веб-проекта:

text
*.asp;*.aspx;*.css;*.html;*.js;*.php;*.sql;*.txt;*.xml

Лучшие альтернативы: когда Notepad++ не справляется

Форумчане правы: для сложных задач нужны спецы.

grepWin — король Windows-поиска

Быстрый старт:

  1. Установите и правой кнопкой на папке > grepWin.

  2. Search in: рекурсивно.

  3. Exclude: ваш список.

Сравнение инструментов

Инструмент Исключения RegEx Замена Архивы CLI
Notepad++ Базовые (!маска) Да Да Нет Нет
grepWin Полные списки/RegEx Да Да Да Нет
PowerShell Динамика Нет Нет Нет Да
Ripgrep (rg) --glob "!*.dll" Да Нет Нет Да
WinGrep Списки Да Да Нет Нет

Ripgrep (установка: winget install BurntSushi.ripgrep.MSVC): rg "function myFunc" --glob "*.php" --iglob "!*.min.js".

Практические кейсы и советы

Кейс из жизни: В проекте с 5000 файлов скрипт исключил 30% DLL/EXE — поиск ускорился в 4 раза.

Заключение

Исключение файлов в Notepad++ эволюционировало от хаков к удобным фильтрам и скриптам. Начните с !*.dll в Filters, автоматизируйте PowerShell, а для профи — grepWin. Это сэкономит часы. Тестируйте на своём проекте и делитесь в комментариях своими скриптами!

Вчера, 20:55. Разместил: administrator
Вернуться назад