line
, который рисует одинарную разделительную линию.
fzf --reverse --footer "fzf: friend zone forever"
--footer-border[=STYLE]
--footer-label=LABEL
--footer-label-pos=COL[:bottom]
footer
footer-bg
footer-border
footer-label
change-footer
transform-footer
bg-transform-footer
change-footer-label
transform-footer-label
bg-transform-footer-label
line
теперь разрешён для всех типов границ, кроме --list-border
.
fzf --height 50% --style full:line --preview 'cat {}' \
--bind 'focus:bg-transform-header(file {})+bg-transform-footer(wc {})'
{*}
, который оценивается как все совпавшие элементы.
seq 10000 | fzf --preview "awk '{sum += \$1} END {print sum}' {*f}"
bg-
, которые выполняются в фоновом режиме, а также действие bg-cancel
для игнорирования текущих действий bg-transform
.
# Реализация всплывающего окна, которое исчезает через 1 секунду
# * Используйте футер в качестве всплывающего окна
# * Используйте `bell`, чтобы зазвонить в терминале
# * Используйте `bg-transform-footer`, чтобы очистить футер через 1 секунду
# * Используйте `bg-cancel`, чтобы игнорировать текущие фоновые действия трансформации
fzf --multi --list-border \
--bind 'enter:execute-silent(echo -n {+} | pbcopy)+bell' \
--bind 'enter:+transform-footer(echo Copied {} to clipboard)' \
--bind 'enter:+bg-cancel+bg-transform-footer(sleep 1)'
# Нормально, если команды выполняются немного дольше, так как они выполняются в фоновом режиме
GETTER='curl -s http://metaphorpsum.com/sentences/1'
fzf --style full --border --preview : \
--bind "focus:bg-transform-header:$GETTER" \
--bind "focus:+bg-transform-footer:$GETTER" \
--bind "focus:+bg-transform-border-label:$GETTER" \
--bind "focus:+bg-transform-preview-label:$GETTER" \
--bind "focus:+bg-transform-input-label:$GETTER" \
--bind "focus:+bg-transform-list-label:$GETTER" \
--bind "focus:+bg-transform-header-label:$GETTER" \
--bind "focus:+bg-transform-footer-label:$GETTER" \
--bind "focus:+bg-transform-ghost:$GETTER" \
--bind "focus:+bg-transform-prompt:$GETTER"
for i in $(seq 16 255); do
echo -e "\x1b[48;5;${i}m\x1b[0Khello"
done | fzf --ansi
--color
, чтобы разрешить записи, разделённые пробелами (в дополнение к запятым), что делает многострочные определения проще для написания и чтения
# seoul256-light
fzf --style full --color='
fg:#616161 fg+:#616161
bg:#ffffff bg+:#e9e9e9 alt-bg:#f1f1f1
hl:#719872 hl+:#719899
pointer:#e12672 marker:#e17899
header:#719872
spinner:#719899 info:#727100
prompt:#0099bd query:#616161
border:#e1e1e1
'
alt-bg
для создания полосатых строк, чтобы визуально разделять строки
fzf --color bg:237,alt-bg:238,current-bg:236 --highlight-line
declare -f | perl -0777 -pe 's/^}\n/}\0/gm' |
bat --plain --language bash --color always |
fzf --read0 --ansi --reverse --multi \
--color bg:237,alt-bg:238,current-bg:236 --highlight-line
reload
(#4364)selected-bg
не применяется к цветным элементам (#4372)tmux run-shell 'fzf --tmux'
(#4559 #4560)--tmux
, когда уже находитесь внутри попапа tmux (@peikk0)--no-tty-default
, чтобы fzf искал текущее устройство TTY вместо использования /dev/tty
по умолчанию (#4242)--ghost=TEXT
для отображения призрачного текста, когда входные данные пусты
# Отображает "Type to search", когда входные данные пусты
fzf --ghost "Type to search"
change-ghost
и transform-ghost
для динамического изменения призрачного текстаchange-pointer
и transform-pointer
для динамического изменения знака указателяr
для плейсхолдерного выражения (сырой режим) для неприкрытого выводаbecome
, когда используется опция --tmux
(#4283)--accept-nth
с --select-1
(#4287)--with-nth
и --accept-nth
теперь поддерживает {n}
, который оценивается как нулевой индекс элементаRelease highlights: https://junegunn.github.io/fzf/releases/0.60.0/
--accept-nth
для выбора выходных полей
ps -ef | fzf --multi --header-lines 1 | awk '{print $2}'
# Становится
ps -ef | fzf --multi --header-lines 1 --accept-nth 2
git branch | fzf | cut -c3-
# Можно переписать как
git branch | fzf --accept-nth -1
--accept-nth
и --with-nth
теперь поддерживают шаблон, который включает несколько выражений индексов полей в фигурных скобках
echo foo,bar,baz | fzf --delimiter , --accept-nth '{1}, {3}, {2}'
# foo, baz, bar
echo foo,bar,baz | fzf --delimiter , --with-nth '{1},{3},{2},{1..2}'
# foo,baz,bar,foo,bar
exclude
и exclude-multi
для динамического исключения элементов
seq 100 | fzf --bind 'ctrl-x:exclude'
# 'exclude-multi' будет исключать выбранные элементы или текущий элемент
seq 100 | fzf --multi --bind 'ctrl-x:exclude-multi'
seq 100 | xargs | fzf --wrap --preview 'echo {}' --preview-window wrap
Release highlights: https://junegunn.github.io/fzf/releases/0.59.0/
pathname
для приоритизации совпадений имен файлов--scheme=path
теперь устанавливает --tiebreak=pathname,length
path
$FZF_DEFAULT_COMMAND
, который обычно является командой для перечисления файлов,reload
или transform
привязано к событию start
, так как в этом случае fzf не может быть уверен в типе входных данных.--header-lines-border
для отображения заголовка из --header-lines
с отдельной границей
# Используйте --header-lines-border для разделения двух заголовков
ps -ef | fzf --style full --layout reverse --header-lines 1 \
--bind 'ctrl-r:reload(ps -ef)' --header 'Press CTRL-R to reload' \
--header-lines-border bottom --no-list-border
click-header
теперь устанавливает $FZF_CLICK_HEADER_WORD
и $FZF_CLICK_HEADER_NTH
. Вы можете использовать их для реализации кликабельного заголовка для изменения области поиска с помощью нового действия transform-nth
.
# Нажмите на строку заголовка, чтобы ограничить область поиска
ps -ef | fzf --style full --layout reverse --header-lines 1 \
--header-lines-border bottom --no-list-border \
--color fg:dim,nth:regular \
--bind 'click-header:transform-nth(
echo $FZF_CLICK_HEADER_NTH
)+transform-prompt(
echo "$FZF_CLICK_HEADER_WORD> "
)'
$FZF_KEY
был обновлён для раскрытия типа клика. Например, click
, ctrl-click
и т.д. Вы можете использовать его для реализации более сложного поведения.kill
для bash и zsh было обновлено для использования этой функции.--no-input
, чтобы полностью отключить и скрыть раздел ввода.
# Нажмите заголовок, чтобы запустить поиск
fzf --header '[src] [test]' --no-input --layout reverse \
--header-border bottom --input-border \
--bind 'click-header:transform-search:echo ${FZF_CLICK_HEADER_WORD:1:-1}'
# Режим переключения, как в Vim
fzf --layout reverse-list --no-input \
--bind 'j:down,k:up,/:show-input+unbind(j,k,/)' \
--bind 'enter,esc,ctrl-c:transform:
if [[ $FZF_INPUT_STATE = enabled ]]; then
echo "rebind(j,k,/)+hide-input"
elif [[ $FZF_KEY = enter ]]; then
echo accept
else
echo abort
fi
'
show-input
или toggle-input
, а затем снова скрыть его с помощью действия hide-input
или toggle-input
.{q}
для поддержки диапазонов. Например, {q:1}
, {q:2..}
и т.д.search(...)
и transform-search(...)
для запуска поиска fzf с произвольной строкой запроса. Это можно использовать для расширения синтаксиса поиска fzf. В следующем примере fzf будет использовать первое слово запроса для запуска поиска ripgrep и использовать оставшуюся часть запроса для выполнения поиска fzf внутри результата.
export TEMP=$(mktemp -u)
trap 'rm -f "$TEMP"' EXIT
TRANSFORMER='
rg_pat={q:1} # Первое слово передаётся ripgrep
fzf_pat={q:2..} # Остальное передаётся fzf
if ! [[ -r "$TEMP" ]] || [[ $rg_pat != $(cat "$TEMP") ]]; then
echo "$rg_pat" > "$TEMP"
printf "reload:sleep 0.1; rg --column --line-number --no-heading --color=always --smart-case %q || true" "$rg_pat"
fi
echo "+search:$fzf_pat"
'
fzf --ansi --disabled \
--with-shell 'bash -c' \
--bind "start,change:transform:$TRANSFORMER"
# Загрузите вывод 'ps -ef' при запуске и перезагрузите его при нажатии CTRL-R
fzf --bind 'start,ctrl-r:reload:ps -ef'
--min-height
теперь принимает число, за которым следует +
, что указывает fzf отображать хотя бы столько элементов в разделе списка. Стандартное значение теперь изменено на 10+
.
# Вы увидите только раздел ввода, который занимает три строки.
fzf --style=full --height 1% --min-height 3
# Вы увидите три элемента в разделе списка.
fzf --style full --height 1% --min-height 3+
--min-height 20+
.--header-lines
будут отображаться сверху в макете reverse-list
.bell
, чтобы зазвонить в терминале.
# Нажмите CTRL-Y, чтобы скопировать текущую строку в буфер обмена и зазвонить.
fzf --bind 'ctrl-y:execute-silent(echo -n {} | pbcopy)+bell'
toggle-bind
.Release highlights: https://junegunn.github.io/fzf/releases/0.58.0/
Эта версия introduces три новых типа границ, --list-border
, --input-border
и --header-border
, предлагающих гораздо большую гибкость для настройки пользовательского интерфейса.
Также fzf теперь предлагает "стилевые пресеты" для быстрой настройки, которые можно активировать с помощью опции --style
.
Пресет | Скриншот |
---|---|
default |
![]() |
full |
![]() |
minimal |
![]() |
--style=full[:BORDER_STYLE]
--style=default
--style=minimal
--list-border[=STYLE]
--list-label=LABEL
--list-label-pos=COL[:bottom]
list-fg
list-bg
list-border
list-label
change-list-label
transform-list-label
--input-border[=STYLE]
--input-label=LABEL
--input-label-pos=COL[:bottom]
input-fg
(query
)input-bg
input-border
input-label
change-input-label
transform-input-label
--header-border[=STYLE]
--header-label=LABEL
--header-label-pos=COL[:bottom]
header-fg
(header
)header-bg
header-border
header-label
change-header-label
transform-header-label
--preview-border[=STYLE]
как сокращение для --preview-window=border[-STYLE]
.line
, который рисует одинарную разделительную линию между окном предварительного просмотра и остальной частью интерфейса.┈┈
) в каждом интервале (--gap
) для лучшей визуальной разделяемости.# Все функции bash, выделенные цветом.
declare -f |
perl -0777 -pe 's/^}\n/}\0/gm' |
bat --plain –language bash –color always |
fzf –read0 –ansi –layout reverse –multi –highlight-line –gap
--gap-line[=STR]
.border-native
для опции --tmux
, чтобы использовать родную границу tmux вместо опции -border
. Это может быть полезно, если вы запускаете другую программу изнутри попапа.fzf –tmux border-native –bind 'enter:execute:less {}'
-nth
.# Начните с `-nth` равным 1, затем измените на 2, затем на 3, затем вернитесь к значению по умолчанию (1).
echo 'foo foobar foobarbaz' | fzf –bind 'space:change-nth(2|3|)' –nth 1 –q foo
-nth
каждой строки теперь могут отображаться разными стилями текста.# `-nth` в другом стиле.
ls –al | fzf –nth=-1 –color nth:italic
ls –al | fzf –nth=-1 –color nth:reverse
ls –al | fzf –nth=-1 –color nth:reverse:bold
# Уменьшение яркости других частей.
ls –al | fzf –nth=-1 –color nth:regular,fg:dim
# С действием change-nth. Текущее значение `-nth` экспортируется как $FZF_NTH.
ps –ef | fzf –reverse –header-lines=1 –header-border=bottom –input-border \
–color nth:regular,fg:dim \
–bind 'ctrl-n:change-nth(8..|1|2|3|4|5|6|7|)' \
–bind 'result:transform-prompt:echo "${FZF_NTH}> "'
-delimiter '|'
, вместо того чтобы экранировать его как -delimiter '\|'
.-walker-root
может принимать несколько аргументов директорий. Например, -walker-root include src lib
.-walker-skip
может обрабатывать многосоставные шаблоны. Например, -walker-skip target/build
.-wrap
(#4083).{n}
допускается в выражении SCROLL опции -preview-window
(#4079).-gap[=N]
для отображения пустых строк между элементами.# Все функции bash, выделенные цветом.
declare –f | perl –0777 –pe 's/^}\n/}\0/gm' |
bat –plain –language bash –color always |
fzf –read0 –ansi –reverse –multi –highlight-line –gap
-color gutter:-1
, чтобы скрыть пустую строку.fzf –info inline-right –gap –color gutter:-1
-preview-window
, чтобы скрыть индикатор прокрутки в окне предварительного просмотра.Release highlights: https://junegunn.github.io/fzf/releases/0.55.0/
fzf –query "'here'" << EOF
come here
not there
EOF
export FZF_DEFAULT_OPTS='
# Опции макета
–layout=reverse
–info=inline-right # Показывать информацию справа от строки приглашения
# ...
'
printf '<< \e]8;;http://github.com/junegunn/fzf\e\\Link to \e[32mfz\e[0mf\e]8;;\e\\ >>' | fzf –ansi
```fzf –preview "printf '<< \e]8;;http://github.com/junegunn/fzf\e\\Ссылка на \e[32mfz\e[0mf\e]8;;\e\\ >>'"
-ellipsis
— это «··» вместо «..».-tmux bottom
, когда строка состояния не находится внизу.–read0
или -wrap
).# Регрессия в версии 0.54.0 могла вызвать эту ошибку.
fzf –height '~100%' –bind 'start:reload:seq 10'
$FZF_DEFAULT_COMMAND
.FZF_DEFAULT_COMMAND='echo $FZF_QUERY' fzf –query foo
–no-height
).-no-height
к вашим $FZF_DEFAULT_OPTS
.Release highlights: https://junegunn.github.io/fzf/releases/0.54.0/
-wrap
позволяет переносить строки.-wrap-sign
позволяет настраивать символ переноса (по умолчанию — «↳ »).history | fzf –tac –wrap –bind 'ctrl-/toggle-wrap' –wrap-sign $'\t↳ '
-wrap-sign $'\t↳ '
для отступа перенесённых строк.-wrap
, чтобы показывать всю строку по умолчанию вместо отображения её в окне предварительного просмотра.-info-command
для настройки информационной строки:# Предварительно добавьте текущую позицию курсора жёлтым цветом.
fzf –info-command='echo –e "\x1b[33;1m$FZF_POS\x1b[m/$FZF_INFO 💛"'
$FZF_INFO
установлен на исходный текст информации;$FZF_POS
, экспортируемая в дочерние процессы. Это вертикальная позиция курсора в списке, начиная с 1.
# Переключение выбора вверх или вниз
seq 30 | fzf --multi --bind 'load:pos(10)' \
--bind 'shift-up:transform:for _ in $(seq $FZF_POS $FZF_MATCH_COUNT); do echo -n +toggle+up; done' \
--bind 'shift-down:transform:for _ in $(seq 1 $FZF_POS); do echo -n +toggle+down; done'
--with-shell
для запуска дочерних процессов с пользовательской командой и флагами оболочки
gem list | fzf --with-shell 'ruby -e' \
--preview 'pp Gem::Specification.find_by_name({1})' \
--bind 'ctrl-o:execute-silent:
spec = Gem::Specification.find_by_name({1})
[spec.homepage, *spec.metadata.filter { _1.end_with?("uri") }.values].uniq.each do
system "open", _1
end
'
change-multi
для динамического изменения опции --multi
change-multi
- включить режим многос выбора без ограниченийchange-multi(NUM)
- включить режим многос выбора с ограничениемchange-multi(0)
- отключить режим многос выбораbecome
теперь поддерживается на Windows
execve(2)
. Вместо этого запускается новый процесс и ожидается его завершение, поэтому поведение может немного отличаться.$ rg --line-number --no-heading --smart-case . > $DATA
$ wc < $DATA
5520118 26862362 897487793
$ hyperfine -w 1 -L bin fzf-0.49.0,fzf-7ce6452,fzf-a5447b8,fzf '{bin} --filter "///" < $DATA | head -30'
Summary
fzf --filter "///" < $DATA | head -30 ran
1.16 ± 0.03 times faster than fzf-a5447b8 --filter "///" < $DATA | head -30
1.23 ± 0.03 times faster than fzf-7ce6452 --filter "///" < $DATA | head -30
1.52 ± 0.03 times faster than fzf-0.49.0 --filter "///" < $DATA | head -30
jump
и jump-cancel
, которые вызываются при выходе из режима jump
# Стандартное поведение
fzf --bind space:jump
# То же самое, что и действие jump-accept
fzf --bind space:jump,jump:accept
# Принять при jump, отменить при cancel
fzf --bind space:jump,jump:accept,jump-cancel:abort
# Изменить заголовок при jump-cancel
fzf --bind 'space:change-header(Тип метки перехода)+jump,jump-cancel:change-header:Переход отменён'
$FZF_KEY
, экспортируемая в дочерние процессы. Это имя последней нажатой клавиши.
fzf --bind 'space:jump,jump:accept,jump-cancel:transform:[[ $FZF_KEY =~ ctrl-c ]] && echo abort'
--info=hidden
и --info=inline-right
больше не будут скрывать горизонтальный разделитель по умолчанию. Это предоставляет больше гибкости для настройки макета.
fzf --border --info=inline-right
fzf --border --info=inline-right --separator ═
fzf --border --info=inline-right --no-separator
fzf --border --info=hidden
fzf --border --info=hidden --separator ━
fzf --border --info=hidden --no-separator
FZF_PREVIEW_LABEL
FZF_BORDER_LABEL
# Используйте текущее значение $FZF_PREVIEW_LABEL для определения действий, которые нужно выполнить
git ls-files |
fzf --header 'Нажмите CTRL-P для изменения режима предварительного просмотра' \
--bind='ctrl-p:transform:[[ $FZF_PREVIEW_LABEL =~ cat ]] \
&& echo "change-preview(git log --color=always \{})+change-preview-label([[ log ]])" \
|| echo "change-preview(bat --color=always \{})+change-preview-label([[ cat ]])"'
track
в track-current
для выделения различий между глобальным состоянием отслеживания, установленным с помощью --track
, и одноразовым действием отслеживания
track
все еще доступно как псевдонимuntrack-current
и toggle-track-current
*-current
не имеют эффекта, когда глобальное состояние отслеживания установленоFZF_CTRL_T_COMMAND
и FZF_ALT_C_COMMAND
в пустые строки соответственно при подключении скрипта
# bash
FZF_CTRL_T_COMMAND= FZF_ALT_C_COMMAND= eval "$(fzf --bash)"
# zsh
FZF_CTRL_T_COMMAND= FZF_ALT_C_COMMAND= eval "$(fzf --zsh)"
# fish
fzf --fish | FZF_CTRL_T_COMMAND= FZF_ALT_C_COMMAND= source
# Настройка связок клавиш и размытого завершения для fzf
eval "$(fzf --bash)"
# Настройка связок клавиш и размытого завершения для fzf
eval "$(fzf --zsh)"
# Настройка связок клавиш для fzf
fzf --fish | source
Опция | Описание | По умолчанию |
---|---|---|
--walker=OPTS |
Опции обходчика ([file][,dir][,follow][,hidden] ) |
file,follow,hidden |
--walker-root=DIR |
Корневая директория, с которой начинается обход | . |
--walker-skip=DIRS |
Список директорий, разделенных запятыми, которые нужно пропустить | .git,node_modules |
# Встроенный обходчик используется только автономной версией fzf, если $FZF_DEFAULT_COMMAND не установлено
unset FZF_DEFAULT_COMMAND
fzf # по умолчанию: --walker=file,follow,hidden --walker-root=. --walker-skip=.git,node_modules
fzf --walker=file,dir,hidden,follow --walker-skip=.git,node_modules,target
# Опции обходчика в $FZF_DEFAULT_OPTS
export FZF_DEFAULT_OPTS="--walker=file,dir,hidden,follow --walker-skip=.git,node_modules,target"
fzf
# Чтение из STDIN; опция --walker игнорируется
seq 100 | fzf --walker=dir
# Чтение из $FZF_DEFAULT_COMMAND; опция --walker игнорируется
export FZF_DEFAULT_COMMAND='seq 100'
fzf --walker=dir
$FZF_DEFAULT_COMMAND
.
devtmpfs
или proc
.$FZF_DEFAULT_OPTS_FILE
для управления стандартными опциями в файле.
$FZF_DEFAULT_OPTS_FILE
$FZF_DEFAULT_OPTS
result
- вызывается, когда фильтрация текущего запроса завершена и список результатов готов.resize
- вызывается, когда изменяется размер терминала.Переменная | Описание |
---|---|
FZF_LINES |
Количество строк, занимаемых fzf, исключая отступы и поля |
FZF_COLUMNS |
Количество столбцов, занимаемых fzf, исключая отступы и поля |
FZF_TOTAL_COUNT |
Общее количество элементов |
FZF_MATCH_COUNT |
Количество совпадающих элементов |
FZF_SELECT_COUNT |
Количество выбранных элементов |
FZF_QUERY |
Текущая строка запроса |
FZF_PROMPT |
Строка приглашения |
FZF_ACTION |
Имя последнего выполненного действия |
# Скрипт для динамического изменения размера окна предварительного просмотра
transformer='
# Одна строка для информации, другая для приглашения и еще две строки для границ окна предварительного просмотра
lines=$(( FZF_LINES - FZF_MATCH_COUNT - 4 ))
if [[ $FZF_MATCH_COUNT -eq 0 ]]; then
echo "change-preview-window:hidden"
elif [[ $lines -gt 3 ]]; then
echo "change-preview-window:$lines"
elif [[ $FZF_PREVIEW_LINES -ne 3 ]]; then
echo "change-preview-window:3"
fi
'
seq 10000 | fzf --preview 'seq {} 10000' --preview-window up \
--bind "result:transform:$transformer" \
--bind "resize:transform:$transformer"
{fzf:prompt}
и {fzf:action}
--ambidouble
, если ваш терминал отображает символы с неопределенной шириной (например, символы рисования рамки) как два столбца.RUNEWIDTH_EASTASIAN=1
все еще учитывается для обратной совместимости, но рекомендуется использовать новую опцию вместо этого.transform
для условного выполнения серии действий:
# Запретить выбор пустой строки:
echo -e "1. Hello\n2. Goodbye\n\n3. Exit" |
fzf --height '~100%' --reverse --header 'Выберите один' \
--bind 'enter:transform:[[ -n {} ]] && echo accept || echo "change-header:Недопустимый выбор"'
# Переместить курсор за пустую строку:
echo -e "1. Hello\n2. Goodbye\n\n3. Exit" |
fzf --height '~100%' --reverse --header 'Выберите один' \
--bind 'enter:transform:[[ -n {} ]] && echo accept || echo "change-header:Недопустимый выбор"' \
--bind 'focus:transform:[[ -n {} ]] && exit; [[ {fzf:action} =~ up$ ]] && echo up || echo down'
# Одно нажатие клавиши для переключения между режимами:
fd --type file |
fzf --prompt 'Файлы> ' \
--header 'CTRL-T: Переключение между Файлами/Директориями' \
--bind 'ctrl-t:transform:[[ ! {fzf:prompt} =~ Файлы ]] &&
echo "change-prompt(Файлы> )+reload(fd --type file)" ||
echo "change-prompt(Директории> )+reload(fd --type directory)"'
{fzf:action}
- Имя последнего выполненного действия.{fzf:prompt}
- Строка приглашения (включая коды цвета ANSI).{fzf:query}
- Синоним для {q}
.# Высота терминала минус один, чтобы вы могли видеть командную строку:
fzf --height=-1
--height=$(($(tput lines) - 1))
.accept-or-print-query
, которое работает как accept
, но выводит текущий запрос, если нет совпадений:
# Вы можете сделать так, чтобы CTRL-R вставлял текущий запрос при отсутствии совпадений:
export FZF_CTRL_R_OPTS='--bind enter:accept-or-print-query'
# 'become' очевидно более универсально, но недоступно на Windows.
export FZF_CTRL_R_OPTS='--bind "enter:become:if [ -z {} ]; then echo {q}; else echo {}; fi"'
# Используя новое действие 'transform':
export FZF_CTRL_R_OPTS='--bind "enter:transform:[ -z {} ] && echo print-query || echo accept"'
show-header
и hide-header
.focus
.fzf --preview='fzf-preview.sh {}'
# Используя https://iterm2.com/utilities/imgcat:
fzf --preview 'imgcat -W $FZF_PREVIEW_COLUMNS -H $FZF_PREVIEW_LINES {}'
# FZF_API_KEY требуется для прослушивания адреса отличного от localhost:
export FZF_API_KEY="$(head -c 32 /dev/urandom | base64)"
fzf --listen 0.0.0.0:6266
--listen-unsafe
вместо этого (execute*
, reload*
, become
, preview
, change-preview
, transform-*
)
fzf --listen-unsafe 0.0.0.0:6266
fzf --preview='
if file --mime-type {} | grep -qF image/; then
# --transfer-mode=memory — самый быстрый вариант, но если вы хотите, чтобы fzf мог перерисовывать изображение при изменении размера терминала или при событии 'change-preview-window',
# вам нужно использовать --transfer-mode=stream.
kitty icat --clear --transfer-mode=memory --unicode-placeholder --stdin=no --place=${FZF_PREVIEW_COLUMNS}x${FZF_PREVIEW_LINES}@0x0 {} | sed \$d
else
bat --color=always {}
fi
'
- (Экспериментально) HTTP-сервер может сообщать состояние программы в формате JSON (`GET /`):
```sh
# Сервер fzf запущен в режиме "без головы":
fzf --listen 6266 2> /dev/null
# Получение состояния программы:
curl localhost:6266 | jq .
# Увеличение количества возвращаемых элементов (по умолчанию: 100):
curl localhost:6266?limit=1000 | jq .
$FZF_API_KEY
.export FZF_API_KEY="$(head -c 32 /dev/urandom | base64)"
# Сервер:
fzf --listen 6266
# Клиент:
curl localhost:6266 -H "x-api-key: $FZF_API_KEY" -d 'change-query(yo)'
toggle-header
.--bind
:
scroll-up
(связано с up
)scroll-down
(связано с down
)shift-scroll-up
(связано с toggle+up
)shift-scroll-down
(связано с toggle+down
)shift-left-click
(связано с toggle
)shift-right-click
(связано с toggle
)preview-scroll-up
(связано с preview-up
)preview-scroll-down
(связано с preview-down
)# Вдвое быстрее прокрутка как в основном окне, так и в окне предварительного просмотра:
fzf --bind 'scroll-up:up+up,scroll-down:down+down' \
--bind 'preview-scroll-up:preview-up+preview-up' \
--bind 'preview-scroll-down:preview-down+preview-down' \
--preview 'cat {}'
offset-up
и offset-down
.# Прокрутка будет работать аналогично CTRL-E и CTRL-Y в vim:
fzf --bind scroll-up:offset-up,scroll-down:offset-down \
--bind ctrl-y:offset-up,ctrl-e:offset-down \
--scroll-off=5
--scheme=path
для лучшей сортировки результатов.--info=right
.--info=inline-right
.thinblock
, который использует символы для вычислений наследственных систем одна восьмая блочные элементы.
block
, этот стиль подходит при использовании другого цвета фона, так как окно полностью содержится внутри границы.BAT_THEME=GitHub fzf --info=right --border=thinblock --preview-window=border-thinblock \
--margin=3 --scrollbar=▏▕ --preview='bat --color=always --style=numbers {}' \
--color=light,query:238,fg:238,bg:251,bg+:249,gutter:251,border:248,preview-bg:253
--disabled
и перезагрузке триггером связки клавиш change:reload
.preview-border
и preview-scrollbar
.block
, который использует блоковые элементы.--scrollbar
может принимать два символа, один для основного окна, другой для окна предварительного просмотра.fzf-tmux -p 80% --padding 1,2 --preview 'bat --style=plain --color=always {}' \
--color 'bg:237,bg+:235,gutter:237,border:238,scrollbar:236' \
--color 'preview-bg:235,preview-border:236,preview-scrollbar:234' \
--preview-window 'border-block' --border block --scrollbar '▌▐'
zero
, которое вызывается при отсутствии совпадений.# Перезагрузить список кандидатов при отсутствии совпадений:
echo $RANDOM | fzf --bind 'zero:reload(echo $RANDOM)+clear-query' --height 3
track
, которое заставляет fzf отслеживать текущий элемент при обновлении результата поиска. Если пользователь вручную перемещает курсор или элемент не находится в обновленном результате поиска, отслеживание автоматически отключается. Отслеживание полезно, когда вы хотите видеть окружающие элементы путем удаления строки запроса.# Уменьшите список с помощью запроса, укажите команду,
# и нажмите CTRL-T, чтобы увидеть окружающие команды.
export FZF_CTRL_R_OPTS="
--preview 'echo {}' --preview-window up:3:hidden:wrap \
--bind 'ctrl-/:toggle-preview' \
--bind 'ctrl-t:track+clear-query' \
--bind 'ctrl-y:execute-silent(echo -n {2..} | pbcopy)+abort' \
--color header:italic \
--header 'Press CTRL-Y to copy command into clipboard'"
change-header(...)
.transform-header(...)
.toggle-track
.--track
, когда она используется вместе с опцией --tac
.
--track
вместе с опцией --tac
не рекомендуется. Результирующее поведение может быть очень запутанным.one
, которое вызывается при наличии только одного совпадения.# Автоматически выбрать единственное совпадение:
seq 10 | fzf --bind one:accept
--track
, которая заставляет fzf отслеживать текущий выбор при обновлении списка результатов. Это может быть полезно при просмотре логов с помощью fzf без сортировки.git log --oneline --graph --color=always | nl |
fzf --ansi --track --no-sort --layout=reverse-list
--listen
без номера порта, fzf автоматически назначит доступный порт и экспортирует его как переменную окружения $FZF_PORT
.# Автоматическое назначение порта:
fzf --listen --bind 'start:execute-silent:echo $FZF_PORT > /tmp/fzf-port'
# Поздоровайтесь:
curl "localhost:$(cat /tmp/fzf-port)" -d 'preview:echo Hello, fzf is listening on $FZF_PORT.'
printf "foo\rbar\nbaz" | fzf --read0 --preview 'echo {}'
fzf --preview 'head -1000 /dev/random'
become(...)
— Заменяет текущий процесс fzf указанным командой с использованием системного вызова execve(2).
Подробнее см. https://github.com/junegunn/fzf#turning-into-a-different-process.
# Открыть выбранные файлы в Vim:
fzf —multi —bind ‘enter:become(vim {+})’
# Открыть файл в Vim и перейти к строке:
git grep —line-number . |
fzf —delimiter : —nth 3.. —bind ‘enter:become(vim {1} +{2})’
— Это действие не поддерживается на Windows.
— Показать предварительный просмотр:
— Скрыть предварительный просмотр:
— Исправления ошибок:
— Опция —preview-window hidden должна не выполнять команду предварительного просмотра до тех пор,
пока не будет вызвано действие toggle-preview.
— Новые события:
— Новое событие focus вызывается при изменении фокуса из-за вертикального перемещения курсора или обновления результата поиска:
```sh
— Новые действия:
— change-border-label:
— change-preview-label:
— transform-border-label:
— transform-preview-label:
— Исправления ошибок и улучшения:
— Улучшена поддержка терминалов (Windows), где каждый символ рисования рамки занимает два столбца.
— Поведение изменений:
— Fzf всегда будет выполнять команду предварительного просмотра,
если шаблон команды содержит {q}, даже если он пустой.
— Если цвет разделителя не указан,
он будет по умолчанию соответствовать цвету границы.
— Если указан флаг follow в опции —preview-window,
fzf будет автоматически прокручивать до конца потока предварительного вывода.
— Стандартный стиль границы на Windows изменен на sharp,
так как некоторые терминалы Windows не могут правильно отображать символы границы rounded.
— Незначительные исправления ошибок и улучшения:
— Исправлена ошибка,
при которой fzf с опцией —tiebreak chunk падал при обратном совпадении запроса.
— Исправлена ошибка,
при которой клик выше fzf приводил к вставке последовательностей эскейпа.
— Добавлено событие start,
которое вызывается только один раз при запуске поисковика fzf.
Поскольку fzf асинхронно потребляет входной поток,
список входных данных недоступен,
если вы не используете —sync.
```sh
— Добавлены —border-label и —border-label-pos для размещения метки на границе:
```sh
— ANSI коды цветов поддерживаются:
(с помощью https://github.com/busyloop/lolcat)
label=$(curl —s http://metaphorpsum.com/sentences/1 | lolcat —f)
— Метка на границе по центру:
fzf —height=10 —border —border-label="╢ $label ╟" —color=label:italic:black
— Левое выравнивание (положительное целое число):
fzf —height=10 —border —border-label="╢ $label ╟" —border-label-pos=3 —color=label:italic:black# Выравнивание по правому краю (отрицательное целое число) в нижней строке (:bottom)
```sh
fzf --height=10 --border --border-label="╢ $label ╟" --border-label-pos=-3:bottom --color=label:italic:black
--preview-label
и --preview-label-pos
для границы окна предварительного просмотраfzf --preview 'cat {}' --border --preview-label=' Preview ' --preview-label-pos=2
--no-separator
или --separator=''
, чтобы скрыть разделитель--separator=╸
--color=separator:...
fzf --separator=╸ --color=separator:green
fzf --separator=$(lolcat -f -F 1.4 <<< ▁▁▂▃▄▅▆▆▅▄▃▂▁▁) --info=inline
--border=bold
и --border=double
вместе с
--preview-window=border-bold
и --preview-window=border-double
--height
. Если значение --height
начинается с ~
, fzf автоматически определит высоту в диапазоне в зависимости от размера входных данных.seq 1 | fzf --height ~70% --border --padding 1 --margin 1
seq 10 | fzf --height ~70% --border --padding 1 --margin 1
seq 100 | fzf --height ~70% --border --padding 1 --margin 1
- Есть несколько ограничений
- Не совместимо с процентными значениями верхнего/нижнего отступа/заполнения
```sh
# Это не допускается (верхний/нижний отступ в процентах)
fzf --height ~50% --border --margin 5%,10%
# Это допускается (верхний/нижний отступ в фиксированном значении)
fzf --height ~50% --border --margin 2,10%
```
- fzf не запустится, пока не определит правильную высоту для входных данных
```sh
# fzf откроется немедленно
(sleep 2; seq 10) | fzf --height 50%
# fzf откроется через 2 секунды
(sleep 2; seq 10) | fzf --height ~50%
(sleep 2; seq 1000) | fzf --height ~50%
```
--no-clear
устарел. Используйте действие reload
вместо этого.--scheme=[default|path|history]
для выбора схемы оценки
default
) не всегда дает оптимальный результатpath
: Дополнительные бонусные баллы присваиваются только символам после разделителей пути. Вы можете выбрать эту схему, если у вас много файлов с пробелами в их путях.history
: Никакие дополнительные бонусные баллы не присваиваются, чтобы придать больше веса хронологическому порядку. Это эквивалентно схеме оценки до 0.32.0. Это также устанавливает --tiebreak=index
.printf "\e[38;5;208mOption 1\e[m\nOption 2" | fzf --ansi
printf "\e[38:5:208mOption 1\e[m\nOption 2" | fzf --ansi
border-{up,down}
как синонимов для border-{top,bottom}
в --preview-window
strikethrough
printf "\e[9mdeleted" | fzf --ansi
fzf --color fg+:strikethrough
--tiebreak=chunk
fzf-tmux -p70%
fzf-tmux -p70% --color=border:bright-red
fzf-tmux -p100%,60% --color=border:bright-yellow --border=horizontal --padding 1,5 --margin 1,0
fzf-tmux -p70%,100% --color=border:bright-green --border=vertical
# Клавиатурные сочетания (CTRL-T, CTRL-R, ALT-C) будут использовать эти опции
export FZF_TMUX_OPTS='-p100%,60% --color=border:green --border=horizontal --padding 1,5 --margin 1,0'
/,:;|
)# `foo/bar.sh` предпочтительнее, чем `foo-bar.sh` при поиске `bar`
fzf --query=bar --height=4 << EOF
foo-bar.sh
foo/bar.sh
EOF
chunk
length
, эта схема хорошо работает с табличными данными.# length предпочитает элемент #1, потому что вся строка короче,
# chunk предпочитает элемент #2, потому что совпавший фрагмент ("foo") короче
fzf --height=6 --header-lines=2 --tiebreak=chunk --reverse --query=fo << "EOF"
N | Field1 | Field2 | Field3
- | ------ | ------ | ------
1 | hello | foobar | baz
2 | world | foo | bazbaz
EOF
- Если входные данные не содержат пробелов, `chunk` эквивалентен `length`. Но мы не будем устанавливать его по умолчанию, так как он вычислительно более затратен.
# Если ширина окна предварительного просмотра меньше 50 столбцов,
# оно будет отображаться над окном поиска.
fzf --preview 'cat {}' --preview-window 'right,50%,border-left,<50(up,30%,border-bottom)'
# Или вы можете просто скрыть его так:
fzf --preview 'cat {}' --preview-window '<50(hidden)'
unicode.IsGraphic
, для --marker
, --pointer
и --ellipsis
. Позволяет использовать Nerd Fonts и т.д. Используйте на свой страх и риск.kill
теперь требует триггерной последовательности (**
) для согласованности.--ellipsis
. Вы можете использовать ее для эффективного поиска невидимых частей элемента.# Поиск по скрытым номерам строк справа.
nl /usr/share/dict/words |
awk '{printf "%s%1000s\n", $2, $1}' |
fzf --nth=-1 --no-hscroll --ellipsis='' |
awk '{print $2}'
rebind
для восстановления связей после использования unbind
.change-preview(...)
для изменения команды --preview
.
preview(...)
— это одноразовое действие, которое не изменяет стандартную команду предварительного просмотра.change-preview-window(...)
.
|
.fzf --preview 'cat {}' --preview-window right:40% \
--bind 'ctrl-/:change-preview-window(right,70%|down,40%,border-top|hidden|)'
--info=inline
.--header-first
для вывода заголовка перед строкой запроса.fzf --header $'Welcome to fzf\n▔▔▔▔▔▔▔▔▔▔▔▔▔▔' --reverse --height 30% --border --header-first
--scroll-off=LINES
(аналогично опции scrolloff
в Vim).
fzf --scroll-off=5
fzf --scroll-off=999
reload
(#2644).$SHELL
для выполнения внешних программ.
hidden
), если есть привязки к предварительному просмотру, но не указана команда --preview
.{n}
не правильно сбрасывалось при выполнении действия reload
.reload
.sinklist
как синоним для sink*
, чтобы было проще добавить функцию к словарю спецификации.let spec = { 'source': 'ls', 'options': ['--multi', '--preview', 'cat {}'] }
function spec.sinklist(matches)
echom string(a:matches)
endfunction
call fzf#run(fzf#wrap(spec))
- Совместимость с Vim 7.
fzf --color fg:3,fg+:11
fzf --color fg:yellow,fg+:bright-yellow
--read0
некорректно отображал длинные строки.unbind
. В следующем примере запуска Ripgrep вы можете использовать unbind(reload)
, чтобы переключиться в режим фильтрации только через fzf.
" fzf будет читать потоковый файл, позволяя другим процессам дописывать в него.
call fzf#run({'source': 'cat /dev/null > /tmp/stream; tail -f /tmp/stream'})
- Теперь можно открывать всплывающее окно относительно текущего окна.
let g:fzf_layout = { 'window': { 'width': 0.9, 'height': 0.6, 'relative': v:true, 'yoffset': 1.0 } }
--preview-window
.fzf --preview 'cat {}' --preview-window border-left
fzf --preview 'cat {}' --preview-window border-left --border horizontal
fzf --preview 'cat {}' --preview-window top:border-bottom
fzf --preview 'cat {}' --preview-window top:border-horizontal
/dev/tty
как STDIN при выполнении действия.# Перенаправление /dev/tty для подавления "Vim: Warning: Input is not from a terminal"
# ls | fzf --bind "enter:execute(vim {} < /dev/tty)"
# Часть "< /dev/tty" больше не нужна.
ls | fzf --bind "enter:execute(vim {})"
# Отображение первых трех строк как фиксированного заголовка.
fzf --preview 'bat --style=header,grid --color=always {}' --preview-window '~3'
# Предварительный просмотр с bat, совпадающая строка посередине окна ниже фиксированного заголовка из первых трех строк.
#
# ~3 Первые три строки как фиксированный заголовок.
# +{2} Базовое смещение прокрутки извлекается из второго поля.
# +3 Дополнительное смещение для компенсации трехстрочного заголовка.
# /2 Размещение посередине области предварительного просмотра.
#
git grep --line-number '' |
fzf --delimiter : \
--preview 'bat --style=full --color=always --highlight-line {2} {1}' \
--preview-window '~3:+{2}+3/2'
select
и deselect
для безусловного выбора или отмены выбора одного элемента в режиме --multi
. Дополняют действие toggle
.close
.
--color
, не сбрасываются при обнаружении другого параметра --color
для того же элемента. Это позволяет указывать пользовательские атрибуты текста в вашем $FZF_DEFAULT_OPTS
, и они все равно будут применяться даже при переопределении цветов.# Стандартные цвета и атрибуты.
fzf
# Применение пользовательских атрибутов текста.
export FZF_DEFAULT_OPTS='--color fg+:italic,hl:-1:underline,hl+:-1:reverse:underline'
fzf
# Разные цвета, но атрибуты все еще сохраняются.
fzf --color hl:176,hl+:177
# Напишите "regular", чтобы очистить атрибуты.
fzf --color hl:176:regular,hl+:177:regular
--phony
в --disabled
.enable-search
, disable-search
и toggle-search
.fzf --color query:#ffffff,disabled:#999999 --bind space:toggle-search
last
для перемещения курсора к последнему совпадению.
top
переименовано в first
, но top
все еще распознается как синоним для обратной совместимости.preview-top
и preview-bottom
.fzf --bind alt-,first,alt-.last0.24.4
------
- Добавлена опция окна предварительного просмотра `follow`.
```sh
# Окно предварительного просмотра автоматически прокручивается к концу.
fzf --preview-window follow --preview 'for i in $(seq 100000); do
echo "$i"
sleep 0.01
(( i % 300 == 0 )) && printf "\033[2J"
done'
change-prompt
.fzf --prompt 'foo> ' --bind $'a:change-prompt:\x1b[31mbar> '
--padding
.fzf --margin 5% --padding 5% --border --preview 'cat {}' \
--color bg:#222222,preview-bg:#333333
--color=[bw|no]
.# fzf может рендерить окно предварительного просмотра до завершения команды.
fzf --preview 'sleep 1; for i in $(seq 100); do echo $i; sleep 0.01; done'
# Окно предварительного просмотра может обрабатывать последовательность ANSI (CSI 2 J) для очистки экрана.
fzf --preview 'for i in $(seq 100000); do
(( i % 200 == 0 )) && printf "\033[2J"
echo "$i"
sleep 0.01
done'
--color
для поддержки стилей текста:
regular
/ bold
/ dim
/ underline
/ italic
/ reverse
/ blink
# * Установите -1 для сохранения исходного цвета.
# * Множественные атрибуты стиля могут быть объединены.
# * Стиль italic может не поддерживаться некоторыми терминалами.
rg --line-number --no-heading --color=always "" |
fzf --ansi --prompt "Rg: " \
--color fg+:italic,hl:underline:-1,hl+:italic:underline:reverse:-1 \
--color pointer:reverse,prompt:reverse,input:159 \
--pointer ' '
vertical
, top
, bottom
, left
, right
" Всплывающее окно по центру экрана.
let g:fzf_layout = { 'window': { 'width': 0.9, 'height': 0.6 } }
" Всплывающее окно шириной на весь экран.
let g:fzf_layout = { 'window': { 'width': 1.0, 'height': 0.5, 'border': 'horizontal' } }
" Всплывающее окно высотой на весь экран.
let g:fzf_layout = { 'window': { 'width': 0.5, 'height': 1.0, 'border': 'vertical' } }
" Аналогично макету 'down', но использует всплывающее окно и не влияет на макет окон.
let g:fzf_layout = { 'window': { 'width': 1.0, 'height': 0.5, 'yoffset': 1.0, 'border': 'top' } }
" Открывается справа;
" Опция 'highlight' все еще поддерживается, но принимает только цвет фона группы.
let g:fzf_layout = { 'window': { 'width': 0.5, 'height': 1.0, 'xoffset': 1.0, 'border': 'left', 'highlight': 'Comment' } }
--multi
, fzf будет выводить количество выбранных элементов даже если ни один элемент не выбран:seq 100 | fzf
# 100/100
seq 100 | fzf --multi
# 100/100 (0)
seq 100 | fzf --multi 5
# 100/100 (0/5)
nocycle
nohidden
nowrap
default
git grep --line-number '' |
fzf --delimiter : \
--preview 'bat --style=numbers --color=always --highlight-line {2} {1}' \
--preview-window +{2}-/2
--preview-window sharp
)--preview-window cycle
)--preview-window noborder
preview-half-page-up
preview-half-page-down
fzf#exec()
для получения пути к исполняемому файлу fzf:
./install –bin
toggle-preview-wrap
--border
для отображения границы над и под поиском--preview
и execute
, может необязательно принимать флаг +
для использования с несколькими выборками
git log --oneline | fzf --multi --preview 'git show {+1}'
execute-silent
для выполнения команды в фоновом режиме без переключения на альтернативный экран. Это полезно, когда процесс короткий и вы не заинтересованы в его выводе.
fzf --bind 'ctrl-y:execute!(echo -n {} | pbcopy)'
ctrl-space
в --bind
--bind
. Множественные действия могут быть объединены с использованием разделителя +
.
fzf --bind 'ctrl-y:execute(echo -n {} | pbcopy)+abort'
--preview-window
с размером 0. Это используется для выполнения команды предварительного просмотра в фоновом режиме без отображения результата.--height
для правильного заполнения окна фоновым цветомhalf-page-up
и half-page-down
-L
к команде поиска по умолчанию--height HEIGHT[%]
:wrap
в --preview-window
.sodanco
может сопоставляться с Só Danço Samba
.
--literal
--filepath-word
, чтобы движения и действия по словам (alt-b
, alt-f
, alt-bs
, alt-d
) учитывали разделители пути$ESCDELAY
--no-bold
(и --bold
)alt-[0-9]
, f11
и f12
для --bind
и --expect
fzf --color fg:153
--tiebreak=end
будет учитывать относительное положение вместо абсолютного расстоянияfzf#wrap
для учета g:fzf_colors
ls -l | fzf --preview="echo user={3} when={-4..-2}; cat {-1}" --header-lines=1
{q}
будет заменено на одинарно закавыченную строку текущего запроса!'
к термину.toggle-preview
preview-up
preview-down
preview-page-up
preview-page-down
--algo=[v1|v2]
, чтобы можно было выбрать старый алгоритм, который придает значение производительности поиска над качеством результата--read0
для чтения входных данных, разделенных символом ASCII NUL--print0
для вывода результата, разделенного символом ASCII NUL--nth
с разделителями, не являющимися регулярными выражениямиhidden
опции --preview-window
--preview
с большим количеством кодов ANSI--preview CMD
--preview-window POS[:SIZE][:hidden]
{}
в действии выполнения теперь заменяется на одинарно закавыченную (вместо двойной) строку текущей строки256
в $TERM
print-query
jump
и jump-accept
, реализующие движение EasyMotion-подобное движение
--hscroll-off=COL
(по умолчанию: 10) (#513)$SHELL
вместо sh
для действия выполнения и $FZF_DEFAULT_COMMAND
(#481)_fzf_compgen_{path,dir}
_fzf_complete_COMMAND_post
для постобработки--tiebreak
теперь принимает список критериев сепаратором запятая
index
допускается только в конце спискаindex
неявно добавляется к списку, если он не указанlength
(или эквивалентно length,index
)begin
будет игнорировать начальные пробелы при расчете индексаtoggle-in
и toggle-out
-reverse
export FZF_DEFAULT_OPTS="--bind tab:toggle-out,shift-tab:toggle-in"
--tac
--tac
, когда список входных данных быстро заполняет весь экран.--tabstop=SPACES
--execute-multi
-prompt
--extended-exact
устарела, вместо этого есть опция --exact
для ортогонального управления "точностью" поиска-bind
-tiebreak=length
(по умолчанию) на использование обрезанной длины при использовании -nth
-header-file
на опцию -header
-header
и -header-lines
могут использоваться вместе'
для отмены кавычек термина в режиме -extended-exact
-tiebreak=end
-with-nth
-with-nth
при использовании с -delimiter
-nth
-margin
-header-file
-header-lines
export FZF_DEFAULT_OPTS="--bind esc:cancel"
-bind
, -toggle-sort
и -expect
-bind
fzf --bind "ctrl-m:execute(less {})"
fzf --bind "ctrl-t:execute(tmux new-window -d 'vim {}')"
-history HISTORY_FILE
-history-size MAX_ENTRIES
(по умолчанию: 1000)-cycle
sleep 10 | fzf
-bind
, -toggle-sort
и -expect
-color
-bind
для пользовательских привязок клавиш.-inline-info
для экономии места на экране (#202)
let $FZF_DEFAULT_OPTS = $FZF_DEFAULT_OPTS.' --inline-info'
-color=light
.-tiebreak
(#191).-no-hscroll
(#193).-toggle-sort
(#194).Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )