Шпаргалка по fzf
0.57Нечёткий поиск всего — файлов, истории, процессов и не только
Русский: 2026-03-29
fzf — это fuzzy finder для вашего терминала, и когда вы начнёте им пользоваться, то удивитесь, как раньше обходились без него. Перенаправьте в него что угодно — списки файлов, git-ветки, ID процессов, переменные окружения, буквально любой построчный ввод — и fzf даст вам мгновенный, интерактивный, прощающий опечатки интерфейс поиска. Он превращает «пролистай 400 строк вывода, щурясь на каждую» в «набери три символа и ты на месте».
Красота fzf в том, что это Unix-фильтр. Он читает строки из stdin, позволяет выбрать одну (или несколько) и пишет выбранное в stdout. Вот и всё. Этот простой контракт означает, что он подключается ко всему. Комбинируйте его с find, rg, git, ps, docker или чем угодно, что выдаёт текст, и у вас бесплатный интерактивный селектор. Это скотч для терминальных рабочих процессов — только элегантный.
Эта шпаргалка фокусируется на паттернах, которые вы будете использовать постоянно: основные команды, интеграции с shell, которые изменят то, как вы навигируете по файловой системе, окно предпросмотра, которое делает выбор роскошным, и готовые рецепты, превращающие fzf из «прикольной игрушки» в «незаменимую инфраструктуру». Если вы запомните только три вещи отсюда, пусть это будут Ctrl-R, Ctrl-T и флаг --preview. Всё остальное — бонус.
Базовое использование
Основы. Большинство людей начинают здесь и даже не подозревают, как глубока кроличья нора.
Синтаксис поиска
Язык поиска fzf компактный, но на удивление мощный. Эти токены можно комбинировать в одном запросе.
Горячие клавиши внутри fzf
Когда fzf открыт, эти клавиши управляют навигацией и выбором.
Интеграции с shell
Это три привязки, которые делают fzf суперсилой. Они подключаются напрямую к вашему shell и работают из коробки после установки.
Окно предпросмотра
Окно предпросмотра превращает fzf из селектора в полноценный браузер. Вы можете предпросматривать файлы, код с подсветкой синтаксиса, изображения, git diff — всё, что можно пропустить через команду.
Типичные паттерны
Это готовые рецепты для копирования, которые делают fzf незаменимым. Каждый решает реальную проблему, с которой вы, вероятно, столкнулись на этой неделе.
Советы
Установите FZF_DEFAULT_COMMAND, чтобы использовать fd или rg вместо стандартного find. Они быстрее, уважают .gitignore и автоматически пропускают мусор вроде node_modules. Попробуйте export FZF_DEFAULT_COMMAND='fd --type f --hidden --follow --exclude .git' в вашем профиле shell.
Настраивайте интеграции с shell независимо друг от друга через FZF_CTRL_T_COMMAND, FZF_CTRL_R_OPTS и FZF_ALT_C_COMMAND. Например, установите FZF_ALT_C_COMMAND='fd --type d', чтобы Alt-C использовал fd для молниеносного поиска директорий и автоматически игнорировал записи из .gitignore.
Поместите ваши стандартные опции fzf в FZF_DEFAULT_OPTS, чтобы они применялись везде. Хорошая отправная точка: export FZF_DEFAULT_OPTS='--height 40% --reverse --border --preview-window right:50%:wrap'. Это даст вам компактный, вертикальный макет с панелью предпросмотра при каждом вызове.
Используйте --bind для добавления пользовательских действий. Например, --bind 'ctrl-y:execute-silent(echo {} | pbcopy)' копирует текущий выбор в буфер обмена, не покидая fzf. Можно привязать любую клавишу к execute, reload, preview или изменению поведения fzf на лету.
Команда --preview имеет доступ к плейсхолдерам: {} — полная строка, {1} — первое поле, {q} — текущий запрос, {n} — номер строки. Они позволяют строить удивительно продвинутые предпросмотры без написания скриптов-обёрток.
Комбинируйте fzf с --header, чтобы придать вашим скриптам понятный контекст. Что-то вроде git branch | fzf --header "Switch to branch:" делает одноразовые скрипты отполированными. Добавьте --prompt для кастомизации текста поисковой строки.
В tmux fzf может открываться во всплывающем окне вместо встроенного режима. Используйте fzf-tmux -p 80%,60% для запуска fzf в центрированном плавающем popup-окне. Это стильно, не мешает основной панели и исчезает по завершении. Попробовав, встроенный fzf покажется тесным.