Что такое fzf?
fzf — это универсальный инструмент нечёткого поиска командной строки, написанный на Go Junegunn Choi. Это интерактивная программа фильтрации для любого рода списков — файлов, истории команд, процессов, имён хостов, закладок, коммитов git и многого другого. С более чем 72 тысячами звёзд на GitHub он стал незаменимым инструментом для продуктивности в командной строке.
⚡ Ключевые возможности fzf
📦 Портативный и быстрый
Дистрибутив в виде одного бинарного файла с молниеносной производительностью. Мгновенно обрабатывает миллионы элементов благодаря оптимизированной реализации на Go.
🛠️ Исключительно универсальный
Полностью настраивается через механизм привязки событий к действиям. Работает с любым видом входных данных — файлами, процессами, командами и т.д.
🔋 Интеграция с оболочкой
Встроенная интеграция с bash, zsh и fish. Включает горячие клавиши для поиска файлов (Ctrl-T), истории команд (Ctrl-R) и навигации по каталогам (Alt-C).
🖼️ Окно предпросмотра
Предпросмотр файлов, изображений и содержимого в реальном времени. Поддерживает подсветку синтаксиса, отображение изображений и пользовательские команды предпросмотра.
🎨 Гибкая настройка
Несколько режимов отображения, цветовые схемы, параметры компоновки и стилевые пресеты. Интерактивная площадка для настройки тем.
🔌 Интеграция с редакторами
Доступны плагины для Vim и Neovim. Бесшовная интеграция с популярными редакторами и рабочими процессами разработки.
apt upgrade всегда держит вас на последней версии.
📦 Установка из deb.griffo.io
Шаг 1: Добавить репозиторий
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
sudo apt updateinstall -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
apt updatesudo apt install extrepo
sudo extrepo enable griffo
sudo apt update🆓 Есть вечно бесплатное зеркало. deb-free.griffo.io раздаёт пакеты бесплатно навсегда — без аккаунта, без подписки, не более 2 месяцев позади upstream, исправления безопасности сразу. Сейчас там cliamp, Ghostty, lazydocker, Oh My Posh и Zed; fzf среди них нет, поэтому репозиторий выше — единственный способ установить его сегодня; попросите, и его можно добавить.
🧩 О варианте extrepo. extrepo — штатный инструмент Debian для внешних репозиториев: он создаёт файл sources и устанавливает ключ подписи, предварительно сверив его с подписанными метаданными. Этот репозиторий зарегистрирован в нём как griffo, а бесплатное навсегда зеркало — как griffo-free, поэтому в Debian (bookworm, trixie, forky и sid) команды выше и есть вся настройка.
extrepo настраивает только файл sources и ключ — учётные данные подписки по-прежнему прописываются в /etc/apt/auth.conf.d/deb.griffo.io.conf. Ubuntu не поддерживается, так как extrepo публикует метаданные только для выпусков Debian: там используйте команды с sudo или от root.
Шаг 2: Установить fzf
# Install latest fzf
sudo apt install fzf
# Проверить установку
fzf --version# Install latest fzf
apt install fzf
# Проверить установку
fzf --versionШаг 3: Настроить интеграцию с оболочкой
# For bash users
echo 'eval "$(fzf --bash)"' >> ~/.bashrc
# For zsh users
echo 'source <(fzf --zsh)' >> ~/.zshrc
# For fish users
echo 'fzf --fish | source' >> ~/.config/fish/config.fish
# Reload shell
source ~/.bashrc # or ~/.zshrc🎯 Примеры базового использования
Интерактивный поиск файлов:
# Find and edit files
vim $(fzf)
# Find files with preview
fzf --preview 'cat {}'
# Find files with syntax highlighting
fzf --preview 'bat --color=always {}'Горячие клавиши интеграции с оболочкой:
# Ctrl-T: Find files and directories
# Type any command, then press Ctrl-T to insert selected files
# Ctrl-R: Search command history
# Press Ctrl-R to search and select from command history
# Alt-C: Change directory
# Press Alt-C to fuzzy find and cd into directoriesРасширенное использование:
# Search processes and kill
ps aux | fzf | awk '{print $2}' | xargs kill
# Search git commits
git log --oneline | fzf | awk '{print $1}' | xargs git show
# Interactive ripgrep
rg --color=always --line-number . | fzf --ansi
# Multi-select mode
find . -type f | fzf -m🔧 Интеграции с инструментами
fzf прекрасно работает с другими современными инструментами командной строки:
- fd: Использовать как источник файлов с учётом .gitignore
- ripgrep: Интерактивный grep с живой перезагрузкой
- bat: Предпросмотр файлов с подсветкой синтаксиса
- eza: Улучшенный листинг файлов с фильтрацией fzf
- zoxide: Умный переход по каталогам с нечётким поиском
🚀 Почему стоит выбрать deb.griffo.io?
- Официальный Debian: Доступен, но часто устаревшие версии
- Ручная установка: Требует инструментарий Go или ручное управление бинарными файлами
- deb.griffo.io: Последняя версия с автоматическими обновлениями
- ✅ Последние функции: Получайте новейшие возможности fzf и улучшения производительности
- ✅ Без ручной настройки: Готовые бинарные файлы, компиляция Go не нужна
- ✅ Автоматические обновления: Пакеты обновляются в течение нескольких часов после выпуска upstream
- ✅ Полный пакет: Включает скрипты интеграции с оболочкой и документацию
- ✅ Несколько дистрибутивов: Работает на Bookworm, Trixie и Sid
- ✅ Простое обслуживание: Стандартные команды apt для обновлений
📦 Репозиторий сборки пакетов
Пакеты для Debian собираются и поддерживаются автоматически в этом репозитории GitHub:
- 🔍 fzf-debian - Latest release builds
🔗 Связанные пакеты
Также доступно из deb.griffo.io:
- eza - Современная замена ls (отлично работает с fzf)
- Файловый менеджер Yazi - Интегрируется с fzf для поиска файлов
- zoxide - Умная команда cd (работает с fzf)