Как установить ripgrep (rg) на macOS, Linux и Windows: regex и .gitignore
Установить rg на трёх ОС, выполнить первый regex-поиск и понять фильтр .gitignore.
Для быстрого поиска в коде ripgrep (rg) удобнее grep -r: по умолчанию уважает .gitignore и хорошо параллелится. Официальные пути установки на macOS, Linux и Windows для читателей hereink.
Запрос — как установить ripgrep и искать по regex. В конце вы запустите первый rg в корне проекта и поймёте, как отсекаются игнорируемые файлы.
Что решает ripgrep
Меньше ловушек grep
grep -r заходит в node_modules, dist и .git. rg по умолчанию читает .gitignore, .ignore и глобальные правила.
Regex без экзамена POSIX
Движок Rust: \d, группы, якоря. Литералы, регистр и фильтры типов покрывают большинство первых задач.
Проверка:
rg --version. Репозиторий:github.com/BurntSushi/ripgrep.
Установка rg на трёх ОС
- 1macOS (Homebrew)
brew install ripgrep. Проверка:which rgиrg --version. - 2Linux (дистрибутив)
Debian/Ubuntu:
sudo apt update && sudo apt install ripgrep. Fedora:sudo dnf install ripgrep. Arch:sudo pacman -S ripgrep. Или tarball с GitHub Releases. - 3Windows
winget install BurntSushi.ripgrep.MSVCили MSI. Scoop:scoop install ripgrep. Новый терминал, затемrg --version. - 4Опционально: Rust
cargo install ripgrep, если Rust уже установлен.
Базовый regex-поиск
rg "useState" src/
rg -i "error" .
rg "^function\s+\w+" --type js
rg -l "TODO" .
rg -n -C 2 "api/v1" Из корня репозитория rg поднимается к .git и применяет правила ignore.
.gitignore и исключения
| Цель | Команда | Заметка |
|---|---|---|
| По умолчанию | rg pattern | Пропускает пути из .gitignore |
| Искать игнорируемое | rg --no-ignore pattern | Шумно, для артефактов сборки |
| Доп. исключение | rg --glob '!*.min.js' foo | Фильтр поверх ignore |
| Одно расширение | rg -t py "def main" | --type-list показывает типы |
- Подходит
- Поиск символов, env-переменных, TODO в monorepo; трассировка строки CI-лога к файлу.
- Не подходит
- Массовая замена в файлах; индексация больших бинарников.
rg полностью заменяет grep?
Нет. rg для деревьев с ignore; grep для пайпов и одного файла.
Почему нет строк в node_modules?
Обычно в .gitignore. rg --no-ignore или поиск внутри папки.
Windows не видит rg?
Откройте терминал заново. where rg. Ручной zip требует PATH.
После поиска — сверить план
Архитектуру удобнее на одном рисунке. Короткой комнате лишний стек не нужен — как создать пространство.