Особая благодарность:
Warp — это современный терминал на базе Rust со встроенным искусственным интеллектом, позволяющий вам и вашей команде быстрее создавать отличное программное обеспечение.
Посетите warp.dev, чтобы узнать больше.
fzf — это универсальный инструмент для поиска нечетких данных из командной строки.
Это интерактивная программа-фильтр для любого списка; файлы, история команд, процессы, имена хостов, закладки, коммиты git и т. д. Он реализует «нечеткий» алгоритм сопоставления, поэтому вы можете быстро вводить шаблоны с пропущенными символами и при этом получать нужные результаты.
Портативный — распространяется в виде одного двоичного файла для упрощения установки.
Невероятно быстро — высокооптимизированный код мгновенно обрабатывает миллионы элементов.
Чрезвычайно универсальный — полностью настраиваемый с помощью механизма привязки событий и действий.
Батарейки в комплекте — включает интеграцию с bash, zsh, fish, Vim и Neovim.
Я хотел бы поблагодарить всех спонсоров этого проекта, которые позволяют мне продолжать улучшать fzf.
Если вы хотите спонсировать этот проект, посетите https://github.com/sponsors/junegunn.
Установка
Использование доморощенного пива
пакеты Linux
Пакеты Windows
Использование git
Бинарные релизы
Настройка интеграции с оболочкой
Плагин Vim/Neovim
Обновление fzf
Здание ФЗФ
Использование
--режим --height
--tmux
режим
Использование Finder
Режимы отображения
Синтаксис поиска
Переменные среды
Параметры
Демо
Примеры
Привязки клавиш для командной строки
Нечеткое завершение для bash и zsh
Файлы и каталоги
Идентификаторы процессов
Имена хостов
Переменные среды/псевдонимы
Настройки
Поддерживаемые команды
Пользовательское нечеткое завершение
Плагин Vim
Расширенные темы
1. Обновите список процессов, нажав CTRL-R.
2. Переключайтесь между источниками, нажав CTRL-D или CTRL-F.
3. Интерактивная интеграция ripgrep
Производительность
Выполнение внешних программ
Переходим к другому процессу
Перезагрузка списка кандидатов
Окно предварительного просмотра
Предварительный просмотр изображения
Советы
Уважение .gitignore
Рыбья ракушка
Тематическая площадка fzf
Связанные проекты
Лицензия
Вы можете использовать Homebrew (в macOS или Linux) для установки fzf.
заварить установку fzf
Важный
Чтобы настроить интеграцию оболочки (привязки клавиш и нечеткое завершение), см. инструкции ниже.
fzf также доступен через MacPorts: sudo port install fzf
Менеджер пакетов | Дистрибутив Linux | Команда |
---|---|---|
АПК | Альпийский Линукс | sudo apk add fzf |
АПТ | Дебиан 9+/Убунту 19.10+ | sudo apt install fzf |
Конда | conda install -c conda-forge fzf | |
ДНФ | Федора | sudo dnf install fzf |
Никс | НикОС и др. | nix-env -iA nixpkgs.fzf |
Пакман | Арч Линукс | sudo pacman -S fzf |
упаковка | FreeBSD | pkg install fzf |
пакетин | NetBSD | pkgin install fzf |
pkg_add | OpenBSD | pkg_add fzf |
Перевозка | Генту | emerge --ask app-shells/fzf |
Спак | spack install fzf | |
XBPS | Пустота Linux | sudo xbps-install -S fzf |
Зиппер | openSUSE | sudo zypper install fzf |
Важный
Чтобы настроить интеграцию оболочки (привязки клавиш и нечеткое завершение), см. инструкции ниже.
В Windows fzf доступен через Chocolatey, Scoop, Winget и MSYS2:
Менеджер пакетов | Команда |
---|---|
Шоколадный | choco install fzf |
Совок | scoop install fzf |
Вингет | winget install fzf |
MSYS2 (пакман) | pacman -S $MINGW_PACKAGE_PREFIX-fzf |
Альтернативно вы можете «клонировать» этот репозиторий в любой каталог и запустить скрипт установки.
git clone --глубина 1 https://github.com/junegunn/fzf.git ~/.fzf~/.fzf/install
Сценарий установки добавит строки в файл конфигурации вашей оболочки для изменения $PATH
и настройки интеграции оболочки.
Вы можете скачать официальные двоичные файлы fzf со страницы релизов.
https://github.com/junegunn/fzf/releases
Добавьте следующую строку в файл конфигурации оболочки.
бить
# Настраиваем привязки клавиш fzf и нечеткое завершение "$(fzf --bash)"
зш
# Настраиваем привязки клавиш fzf и нечеткий источник завершения <(fzf --zsh)
рыба
# Настраиваем привязку клавиш fzffzf --fish | источник
Примечание
Опции --bash
, --zsh
и --fish
доступны только в fzf 0.48.0 или более поздней версии. Если у вас более старая версия fzf или вам нужен более точный контроль, вы можете разместить отдельные файлы сценариев в каталоге /shell. Расположение файлов может различаться в зависимости от используемого вами менеджера пакетов. Пожалуйста, обратитесь к документации пакета для получения дополнительной информации. (например, apt show fzf
)
Кончик
Вы можете отключить привязку CTRL-T или ALT-C, установив для FZF_CTRL_T_COMMAND
или FZF_ALT_C_COMMAND
пустую строку при отправке сценария. Например, чтобы отключить привязку ALT-C:
bash: FZF_ALT_C_COMMAND= eval "$(fzf --bash)"
zsh: FZF_ALT_C_COMMAND= source <(fzf --zsh)
рыба: fzf --fish | FZF_ALT_C_COMMAND= source
Установка переменных после загрузки сценария не будет иметь никакого эффекта.
Если вы используете vim-plug, добавьте это в файл конфигурации Vim:
Подключите 'junegunn/fzf', { 'do': { -> fzf#install() } } Подключите 'junegunn/fzf.vim'
junegunn/fzf
предоставляет основные библиотечные функции.
fzf#install()
гарантирует, что у вас установлена последняя версия двоичного файла.
junegunn/fzf.vim
— это отдельный проект, который предоставляет множество полезных команд.
Чтобы узнать больше об интеграции Vim, см. README-VIM.md.
Кончик
Если вы используете Neovim и предпочитаете плагины на основе Lua, попробуйте fzf-lua.
fzf активно развивается, и вы можете время от времени обновлять его. Пожалуйста, следуйте инструкциям ниже в зависимости от используемого метода установки.
git: cd ~/.fzf && git pull && ./install
варить: brew update; brew upgrade fzf
macports: sudo port upgrade fzf
шоколадный: choco upgrade fzf
vim-plug: :PlugUpdate fzf
См. BUILD.md.
fzf запустит интерактивный поиск, прочитает список из STDIN и запишет выбранный элемент в STDOUT.
найти * -тип f | fzf > выбрано
Без канала STDIN fzf обойдет файловую систему текущего каталога, чтобы получить список файлов.
вим $(fzf)
Примечание
Вы можете переопределить поведение по умолчанию
Либо установив $FZF_DEFAULT_COMMAND
для команды, которая генерирует желаемый список.
Или установив параметры --walker
, --walker-root
и --walker-skip
в $FZF_DEFAULT_OPTS
Предупреждение
Более надежным решением было бы использование xargs
, но мы представили вышеизложенное, поскольку его легче понять.
fzf --print0 | xargs -0 -o vim
Кончик
fzf также имеет возможность превращаться в другой процесс.
fzf --bind 'enter:become(vim {})'
Дополнительную информацию см. в разделе Преобразование в другой процесс.
CTRL-K
/ CTRL-J
(или CTRL-P
/ CTRL-N
) для перемещения курсора вверх и вниз.
Enter
клавишу для выбора элемента, CTRL-C
/ CTRL-G
/ ESC
для выхода.
В режиме множественного выбора ( -m
) нажмите TAB
и Shift-TAB
чтобы отметить несколько элементов.
Привязки клавиш в стиле Emacs
Мышь: прокрутка, щелчок, двойной щелчок; Shift-щелчок и Shift-прокрутка в режиме множественного выбора
fzf по умолчанию работает в полноэкранном режиме, но есть и другие режимы отображения.
--height
С --height HEIGHT[%]
fzf начнется под курсором с заданной высотой.
fzf --высота 40%
reverse
макет и --border
хорошо сочетается с этой опцией.
fzf --height 40% -- реверс макета --border
Добавляя ~
к высоте, вы устанавливаете максимальную высоту.
# Для отображения списка потребуется как можно меньше строк 3 | fzf --высота ~100% сек 3000 | fzf --высота ~100%
Значение высоты может быть отрицательным числом.
# Высота экрана — 3fzf --height -3
--tmux
режим С опцией --tmux
fzf запустится во всплывающем окне tmux.
# --tmux [center|top|bottom|left|right][,SIZE[%]][,SIZE[%]]fzf --tmux center # Центр, 50% ширины и высотыfzf --tmux 80% # Центр, 80% ширина и высотаfzf --tmux 100%,50% # Центр, 100% ширина и 50% высотаfzf --tmux left,40% # Слева, ширина 40%fzf --tmux left,40%,90% # Слева, ширина 40%, высота 90%fzf --tmux top,40% # Сверху, высота 40% fzf --tmux снизу,80% ,40% # Низ, 80% высота, 40% высота
--tmux
молча игнорируется, если вы не используете tmux.
Примечание
Если вы используете старую версию tmux, которая не поддерживает всплывающие окна, или если вы хотите открыть fzf в обычной панели tmux, воспользуйтесь сценарием fzf-tmux.
Кончик
Вы можете добавить эти параметры в $FZF_DEFAULT_OPTS
, чтобы они применялись по умолчанию. Например,
# Открыть всплывающее окно tmux, если он используется, в противном случае используйте --height modeexport FZF_DEFAULT_OPTS='--height 40% --tmux low,40% --layoutverse --border top'
Если не указано иное, fzf запускается в «режиме расширенного поиска», в котором вы можете ввести несколько условий поиска, разделенных пробелами. например ^music .mp3$ sbtrkt !fire
Токен | Тип соответствия | Описание |
---|---|---|
sbtrkt | нечеткое совпадение | Товары, соответствующие sbtrkt |
'wild | точное совпадение (цитируется) | Предметы, включающие wild |
'wild' | точное совпадение границ (закавычено с обоих концов) | Элементы, содержащие wild на границах слов. |
^music | префикс-точное совпадение | Предметы, которые начинаются с music |
.mp3$ | суффикс-точное совпадение | Элементы, заканчивающиеся на .mp3 |
!fire | обратное точное совпадение | Предметы, не относящиеся к fire |
!^music | точное совпадение обратного префикса | Предметы, которые не начинаются с music |
!.mp3$ | обратный суффикс-точное совпадение | Элементы, которые не заканчиваются на .mp3 |
Если вы не предпочитаете нечеткое сопоставление и не хотите «цитировать» каждое слово, запустите fzf с опцией -e
или --exact
. Обратите внимание: если установлен --exact
, префикс '
-выключает термин из кавычек.
Термин из одного символа-бара действует как оператор ИЛИ. Например, следующий запрос соответствует записям, которые начинаются с core
и заканчиваются на go
, rb
или py
.
^core go$ | rb$ | py$
FZF_DEFAULT_COMMAND
Команда по умолчанию, используемая, когда входной сигнал tty
например, export FZF_DEFAULT_COMMAND='fd --type f'
FZF_DEFAULT_OPTS
Параметры по умолчанию
например, export FZF_DEFAULT_OPTS="--layout=reverse --inline-info"
FZF_DEFAULT_OPTS_FILE
Если вы предпочитаете управлять параметрами по умолчанию в файле, установите эту переменную так, чтобы она указывала на местоположение файла.
например, export FZF_DEFAULT_OPTS_FILE=~/.fzfrc
Предупреждение
FZF_DEFAULT_COMMAND
не используется при интеграции оболочки из-за небольшой разницы в требованиях.
CTRL-T
запускает $FZF_CTRL_T_COMMAND
, чтобы получить список файлов и каталогов.
ALT-C
запускает $FZF_ALT_C_COMMAND
чтобы получить список каталогов.
vim ~/**<tab>
запускает fzf_compgen_path()
с префиксом ( ~/
) в качестве первого аргумента
cd foo**<tab>
запускает fzf_compgen_dir()
с префиксом ( foo
) в качестве первого аргумента
Доступные параметры описаны далее в этом документе.
Полный список опций смотрите на странице руководства ( man fzf
).
Если вы учитесь, просматривая видео, посмотрите этот скринкаст @samoshkin, чтобы изучить возможности fzf
.
Wiki-страница с примерами
Отказ от ответственности: примеры на этой странице поддерживаются сообществом и не проверялись тщательно.
Расширенные примеры fzf
Настроив интеграцию с оболочкой, вы можете использовать следующие привязки клавиш в bash, zsh и fish.
CTRL-T
— вставить выбранные файлы и каталоги в командную строку.
Вы можете переопределить это поведение, установив для FZF_CTRL_T_COMMAND
пользовательскую команду, которая генерирует нужный список.
Или вы можете установить параметры --walker*
в FZF_CTRL_T_OPTS
Список генерируется с использованием параметра --walker file,dir,follow,hidden
Установите FZF_CTRL_T_OPTS
для передачи дополнительных параметров в fzf.
# Предварительный просмотр содержимого файла с помощью bat (https://github.com/sharkdp/bat)export FZF_CTRL_T_OPTS=" --walker-skip .git,node_modules,target --preview 'bat -n --color=always {}' - -bind 'ctrl-/:change-preview-window(down|hidden|)'"
Можно отключить, установив для FZF_CTRL_T_COMMAND
пустую строку при загрузке скрипта.
CTRL-R
— вставить выбранную команду из истории в командную строку.
Если вы хотите просмотреть команды в хронологическом порядке, снова нажмите CTRL-R
, что переключит сортировку по релевантности.
Нажмите CTRL-/
или ALT-/
чтобы переключить перенос строк.
Установите FZF_CTRL_R_OPTS
, чтобы передать дополнительные параметры в fzf.
# CTRL-Y, чтобы скопировать команду в буфер обмена с помощью pbcopyexport FZF_CTRL_R_OPTS=" --bind 'ctrl-y:execute-silent(echo -n {2..} | pbcopy)+abort' --color header:italic --header «Нажмите CTRL-Y, чтобы скопировать команду в буфер обмена»»
ALT-C
— перейти в выбранный каталог.
Или вы можете установить параметры --walker-*
в FZF_ALT_C_OPTS
Список создается с использованием опции --walker dir,follow,hidden
Установите FZF_ALT_C_COMMAND
, чтобы переопределить команду по умолчанию.
Установите FZF_ALT_C_OPTS
для передачи дополнительных параметров в fzf.
# Распечатать древовидную структуру в окне предварительного просмотраexport FZF_ALT_C_OPTS=" --walker-skip .git,node_modules,target --preview 'tree -C {}'"
Можно отключить, установив для FZF_ALT_C_COMMAND
пустую строку при загрузке скрипта.
Режимы отображения для этих привязок можно настроить отдельно через FZF_{CTRL_T,CTRL_R,ALT_C}_OPTS
или глобально через FZF_DEFAULT_OPTS
. (например, FZF_CTRL_R_OPTS='--tmux bottom,60% --height 60% --border top'
)
Дополнительные советы можно найти на вики-странице.
Нечеткое завершение для файлов и каталогов может быть запущено, если слово перед курсором заканчивается последовательностью триггера, которая по умолчанию равна **
.
COMMAND [DIRECTORY/][FUZZY_PATTERN]**<TAB>
# Файлы в текущем каталоге# - Вы можете выбрать несколько элементов с помощью клавиши TAB vim **<TAB># Файлы в родительском каталогеvim ../**<TAB># Файлы в родительском каталоге, соответствующие `fzf`vim ../fzf* *<TAB># Файлы в вашем домашнем каталоге vim ~/**<TAB># Каталоги в текущем каталоге (одиночный выбор)cd **<TAB># Каталоги в ~/github которые соответствуют `fzf`cd ~/github/fzf**<TAB>
Для команды уничтожения предусмотрено нечеткое завершение PID.
# Можно выбрать несколько процессов с помощью клавиш <TAB> или <Shift-TAB> -9 **<TAB>
Для команд ssh и telnet предусмотрено нечеткое завершение имен хостов. Имена извлекаются из /etc/hosts и ~/.ssh/config.
ssh **<TAB>telnet **<TAB>
unset **<TAB>экспорт **<TAB>unalias **<TAB>
# Используйте ~~ в качестве последовательности триггеров вместо стандартной **export FZF_COMPLETION_TRIGGER='~~'# Параметры команды fzfexport FZF_COMPLETION_OPTS='--border --info=inline'# Используйте fd (https://github.com/ Sharkdp/fd) для перечисления кандидатов на путь.# - Первый аргумент функции ($1) — это базовый путь для начала обхода# - Подробности см. в исходном коде (completion.{bash,zsh})._fzf_compgen_path() { fd --hidden --follow --exclude ".git" . "$1"}# Используйте fd для создания списка каталогов завершение_fzf_compgen_dir() { fd --type d --hidden --follow --exclude ".git" . "$1"}# Расширенная настройка параметров fzf с помощью функции _fzf_comprun# - Первым аргументом функции является имя команды.# - Вы должны обязательно передать остальные аргументы в fzf._fzf_comprun() { локальная команда =$1 сдвиг случай "$command" incd) fzf --preview 'tree -C {} | голова -200' "$@" ;; экспорт|unset) fzf --preview "eval 'echo $'{}" "$@" ;; ssh) fzf --preview 'dig {}' "$@" ;;*) fzf --preview 'bat -n --color=always {}' "$@" ;; esac}
В bash нечеткое завершение включено только для предопределенного набора команд ( complete | grep _fzf
чтобы просмотреть список). Но вы можете включить его и для других команд, используя вспомогательную функцию _fzf_setup_completion
.
# использование: _fzf_setup_completion path|dir|var|alias|host КОМАНДЫ..._fzf_setup_completion path ag git kubectl Дерево каталогов _fzf_setup_completion
(API пользовательского завершения является экспериментальным и может быть изменен)
Для команды с именем «COMMAND» определите функцию _fzf_complete_COMMAND
с помощью помощника _fzf_complete
.
# Пользовательское нечеткое завершение для команды "doge"# например, doge **<TAB>_fzf_complete_doge() { _fzf_complete --multi --reverse --prompt="doge> " -- "$@" < <( эхо очень эхо вау эхо такое эхо дог )}
Аргументы выше --
это опции fzf.
После --
просто передайте исходные аргументы завершения без изменений ( "$@"
).
Затем напишите набор команд, который генерирует кандидатов на завершение, и передайте его выходные данные функции, используя подстановку процесса ( < <(...)
).
zsh автоматически выберет функцию, используя соглашение об именах, но в bash вам придется вручную связать функцию с командой, используя complete
команду.
[ -n "$BASH" ] && Complete -F _fzf_complete_doge -o default -o bashdefault doge
Если вам нужно выполнить постобработку вывода fzf, определите _fzf_complete_COMMAND_post
следующим образом.
_fzf_complete_foo() { _fzf_complete --multi --reverse --header-lines=3 -- "$@" < <( ls -al )}_fzf_complete_foo_post() { awk '{print $NF}'} [ -n "$BASH" ] && Complete -F _fzf_complete_foo -o default -o bashdefault foo
См. README-VIM.md.
fzf быстрый. Производительность не должна быть проблемой в большинстве случаев использования. Однако вам, возможно, захочется узнать об опциях, которые могут повлиять на производительность.
--ansi
сообщает fzf извлекать и анализировать цветовые коды ANSI во входных данных, что замедляет начальное сканирование. Поэтому не рекомендуется добавлять его в $FZF_DEFAULT_OPTS
.
--nth
замедляет работу fzf, поскольку ему приходится маркировать каждую строку.
--with-nth
замедляет работу fzf, поскольку fzf приходится токенизировать и заново собирать каждую строку.
Вы можете настроить привязки клавиш для запуска внешних процессов, не выходя из fzf ( execute
, execute-silent
).
# Нажмите F1, чтобы открыть файл с less, не выходя из fzf# Нажмите CTRL-Y, чтобы скопировать строку в буфер обмена и прервать fzf (требуется pbcopy)fzf --bind 'f1:execute(less -f {}),ctrl-y: выполнить-тихо (эхо {} | pbcopy) + прервать'
Подробности см. в разделе «Привязка клавиш» на странице руководства.
become(...)
аналогичен execute(...)
/ execute-silent(...)
описанному выше, но вместо выполнения команды и возврата к fzf по завершении он превращает fzf в новый процесс для команда.
fzf --bind 'enter:become(vim {})'
По сравнению с, казалось бы, эквивалентной подстановкой команд vim "$(fzf)"
этот подход имеет ряд преимуществ:
Vim не откроет пустой файл, если вы завершите fzf с помощью CTRL-C.
Vim не откроет пустой файл, если вы нажмете ENTER при пустом результате.
Может обрабатывать несколько вариантов выбора, даже если в них есть пробелы.
fzf --multi --bind 'enter:become(vim {+})'
Честно говоря, запустим fzf --print0 | xargs -0 -o vim
вместо vim "$(fzf)"
решает все упомянутые проблемы. Тем не менее, become(...)
по-прежнему предлагает дополнительные преимущества в различных сценариях.
Вы можете настроить несколько привязок для обработки результата по-разному без какого-либо сценария-оболочки.
fzf --bind 'enter:become(vim {}),ctrl-e:become(emacs {})'
Раньше вам приходилось использовать --expect=ctrl-e
и проверять первую строку вывода fzf.
Вы можете легко построить следующую команду, используя выражения индекса поля fzf.
# Откройте файл в Vim и перейдите к строке git grep --line-number. |fzf --delimiter : --nth 3.. --bind 'enter:become(vim {1} +{2})'
Привязав действие reload
к ключу или событию, вы можете заставить fzf динамически перезагружать список кандидатов. См. #1750 для получения более подробной информации.
пс-эф | fzf --bind 'ctrl-r:reload(ps -ef)' --header 'Нажмите CTRL-R, чтобы перезагрузить' --header-lines=1 --height=50% --layout=реверс
FZF_DEFAULT_COMMAND='найти . -напечатайте f' fzf --bind 'ctrl-d:reload(find. -type d),ctrl-f:reload(eval "$FZF_DEFAULT_COMMAND")' --height=50% --layout=реверс
В следующем примере fzf используется в качестве интерфейса выбора для ripgrep. Мы связали действие reload
с событием change
, поэтому каждый раз, когда вы вводите fzf, процесс ripgrep перезапускается с обновленной строкой запроса, обозначенной выражением-заполнителем {q}
. Также обратите внимание, что мы использовали опцию --disabled
, чтобы fzf не выполнял вторичную фильтрацию.
: | rg_prefix='rg --column --номер-строки --без заголовка --color=always --smart-case' fzf --bind 'start:reload:$rg_prefix ""' --bind 'change:reload:$rg_prefix {q} || истинный' --bind 'enter:become(vim {1} +{2})' --ansi --отключено --height=50% --layout=реверс
Если ripgrep не найдет совпадений, он завершит работу с ненулевым статусом завершения, и fzf предупредит вас об этом. Чтобы подавить предупреждающее сообщение, мы добавили || true
для команды, так что она всегда завершается с 0.
Более сложные примеры см. в разделе «Использование fzf в качестве интерактивного средства запуска Ripgrep».
Если установлена опция --preview
, fzf автоматически запускает внешний процесс с текущей строкой в качестве аргумента и отображает результат в разделенном окне. Ваша $SHELL
используется для выполнения команды с помощью $SHELL -c COMMAND
. Окно можно прокручивать с помощью мыши или специальных сочетаний клавиш.
# {} заменяется строкой в одинарных кавычках выделенной строкиfzf --preview 'cat {}'
Окно предварительного просмотра поддерживает цвета ANSI, поэтому вы можете использовать любую программу, которая синтаксически выделяет содержимое файла, например Bat или Highlight:
fzf --preview 'bat --color=always {}' --preview-window '~3'
Вы можете настроить размер, положение и границу окна предварительного просмотра, используя параметр --preview-window
, а также цвет переднего плана и фона с помощью параметра --color
. Например,
fzf --height 40% --layout reverse --info inline --border --preview 'file {}' --preview-window up,1,border-horizontal --bind 'ctrl-/:change-preview-window(50%|скрытый|)' --color 'fg:#bbccdd,fg+:#ddeeff,bg:#334455,preview-bg:#223344,border:#778899'
Полный список опций смотрите на странице руководства ( man fzf
).
Более продвинутые примеры можно найти здесь.
Предупреждение
Поскольку fzf — это текстовый фильтр общего назначения, а не средство поиска файлов, добавлять параметр --preview
в $FZF_DEFAULT_OPTS
— не лучшая идея .
# *********************# ** НЕ ДЕЛАЙТЕ ЭТОГО! **# *********************export FZF_DEFAULT_OPTS='--preview "bat --style=numbers --color=always --line-range :500 {}"'# bat не работает ни с какими входными данными, кроме списка файловps -ef | фзф сек 100 | фзфистория | фзф
fzf может отображать изображения в окне предварительного просмотра, используя один из следующих протоколов:
Графический протокол Китти
Протокол встроенных изображений iTerm2
Сиксель
Дополнительную информацию см. в сценарии bin/fzf-preview.sh.
fzf --preview 'fzf-preview.sh {}'
.gitignore
Вы можете использовать fd, ripgrep или silver searcher для обхода файловой системы с соблюдением .gitignore
.
# Подать вывод fd в fzffd --type f --strip-cwd-prefix | fzf# Установка fd в качестве источника по умолчанию для fzfexport FZF_DEFAULT_COMMAND='fd --type f --strip-cwd-prefix'# Теперь fzf (без канала) будет использовать команду fd для создания спискаfzf# Чтобы применить команду к CTRL-T, а также экспортировать FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND"
Если вы хотите, чтобы команда следовала по символическим ссылкам и не исключала скрытые файлы, используйте следующую команду:
экспорт FZF_DEFAULT_COMMAND='fd --type f --strip-cwd-prefix --hidden --follow --exclude .git'
Привязка клавиш CTRL-T
для fish, в отличие от клавиш bash и zsh, будет использовать последний токен в командной строке в качестве корневого каталога для рекурсивного поиска. Например, нажав CTRL-T
в конце следующей командной строки
лс /вар/
выведет список всех файлов и каталогов в /var/
.
При использовании пользовательского FZF_CTRL_T_COMMAND
используйте нерасширенную переменную $dir
, чтобы использовать эту функцию. По умолчанию $dir
имеет значение .
когда последний токен не является допустимым каталогом. Пример:
set -g FZF_CTRL_T_COMMAND "команда find -L $dir -type f 2> /dev/null | sed '1d; s#^./##'"
Игровая площадка тем fzf, созданная Витором Мелло, — это веб-страница, на которой вы можете в интерактивном режиме создавать темы fzf.
https://github.com/junegunn/fzf/wiki/Related-projects
Лицензия MIT (MIT)
Copyright (c) 2013-2024 Джунгунн Чой