fzf: ускоряйте поиск в терминале за секунды
fzf: Нечёткий поиск в терминале, который изменит ваш workflow
Устали листать историю команд или использовать grep и find для поиска файлов? fzf — интерактивный фильтр командной строки, который позволяет быстро находить файлы, команды из истории, процессы и даже коммиты Git с нечётким совпадением.
Установка
fzf доступен в большинстве репозиториев и можно установить несколькими способами:
- Ubuntu/Debian
sudo apt install fzf
- macOS
brew install fzf
- Установка через скрипт (добавит хуки в оболочку)
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install
Преимущества
- Скорость: мгновенный поиск даже в сотнях тысяч строк.
- Универсальность: работает с любым списком через пайп.
- Интеграция: готовые биндинги для Bash, Zsh, Fish.
- Предпросмотр: можно сразу просматривать содержимое файлов.
Недостатки
- Добавляет ещё одну зависимость в систему.
- Необходимость привыкания к новым сочетаниям клавиш.
Киллер‑фичи
- Поиск в истории команд (замена Ctrl+R)
- Быстрый поиск и открытие файлов
- Убийство процесса по имени
- Поиск по коммитам Git
Нажмите Ctrl+R и начните вводить часть команды. fzf покажет все подходящие варианты из истории, которые можно выбрать стрелками и нажатием Enter.
Найдите файл, просмотрите его в превью и откройте в выбранном редакторе:
vim $(fzf --preview 'bat --color=always {}')
Если нужно ограничить поиск только файлами и директориями:
fzf --type f --type d
Выберите процесс из списка и автоматически завершите его:
kill -9 $(ps aux | fzf | awk '{print $2}')
Просмотрите лог и выберите коммит для подробного просмотра:
git log --oneline | fzf --preview 'git show --color=always {1}'
Пример рабочего дня с fzf
- Найти и открыть конфиг nginx:
- Найти старую длинную команду для сборки проекта (Ctrl+R + «docker build»).
- Подключиться к существующей tmux‑сессии:
sudo vim $(find /etc/nginx -type f | fzf)
tmux attach -t $(tmux list-sessions | fzf | cut -d: -f1)
Ссылка на GitHub репозиторий.
Теперь grep и find выглядят как каменный век. Особенно, когда за 2 секунды находите файл, название которого только смутно помните.
Вы уже используете fzf? Или предпочитаете другие инструменты для быстрого поиска? Поделитесь в комментариях и ставьте лайки, если статья полезна.