1fzf(1) fzf - a command-line fuzzy finder fzf(1)
2
3
4
6 fzf - a command-line fuzzy finder
7
8
10 fzf [options]
11
12
14 fzf is a general-purpose command-line fuzzy finder.
15
16
18 Search mode
19 -x, --extended
20 Extended-search mode. Since 0.10.9, this is enabled by default.
21 You can disable it with +x or --no-extended.
22
23 -e, --exact
24 Enable exact-match
25
26 -i Case-insensitive match (default: smart-case match)
27
28 +i Case-sensitive match
29
30 --literal
31 Do not normalize latin script letters for matching.
32
33 --algo=TYPE
34 Fuzzy matching algorithm (default: v2)
35
36 v2 Optimal scoring algorithm (quality)
37 v1 Faster but not guaranteed to find the optimal result
38 (performance)
39
40
41 -n, --nth=N[,..]
42 Comma-separated list of field index expressions for limiting
43 search scope. See FIELD INDEX EXPRESSION for the details.
44
45 --with-nth=N[,..]
46 Transform the presentation of each line using field index ex‐
47 pressions
48
49 -d, --delimiter=STR
50 Field delimiter regex for --nth and --with-nth (default: AWK-
51 style)
52
53 --disabled
54 Do not perform search. With this option, fzf becomes a simple
55 selector interface rather than a "fuzzy finder". You can later
56 enable the search using enable-search or toggle-search action.
57
58 Search result
59 +s, --no-sort
60 Do not sort the result
61
62 --tac Reverse the order of the input
63
64 e.g.
65 history | fzf --tac --no-sort
66
67 --tiebreak=CRI[,..]
68 Comma-separated list of sort criteria to apply when the scores
69 are tied.
70
71 length Prefers line with shorter length
72 begin Prefers line with matched substring closer to the begin‐
73 ning
74 end Prefers line with matched substring closer to the end
75 index Prefers line that appeared earlier in the input stream
76
77 - Each criterion should appear only once in the list
78 - index is only allowed at the end of the list
79 - index is implicitly appended to the list when not specified
80 - Default is length (or equivalently length,index)
81 - If end is found in the list, fzf will scan each line backwards
82
83 Interface
84 -m, --multi
85 Enable multi-select with tab/shift-tab. It optionally takes an
86 integer argument which denotes the maximum number of items that
87 can be selected.
88
89 +m, --no-multi
90 Disable multi-select
91
92 --no-mouse
93 Disable mouse
94
95 --bind=KEYBINDS
96 Comma-separated list of custom key bindings. See KEY/EVENT BIND‐
97 INGS for the details.
98
99 --cycle
100 Enable cyclic scroll
101
102 --keep-right
103 Keep the right end of the line visible when it's too long. Ef‐
104 fective only when the query string is empty.
105
106 --no-hscroll
107 Disable horizontal scroll
108
109 --hscroll-off=COL
110 Number of screen columns to keep to the right of the highlighted
111 substring (default: 10). Setting it to a large value will cause
112 the text to be positioned on the center of the screen.
113
114 --filepath-word
115 Make word-wise movements and actions respect path separators.
116 The following actions are affected:
117
118 backward-kill-word
119 backward-word
120 forward-word
121 kill-word
122
123 --jump-labels=CHARS
124 Label characters for jump and jump-accept
125
126 Layout
127 --height=HEIGHT[%]
128 Display fzf window below the cursor with the given height in‐
129 stead of using the full screen.
130
131 --min-height=HEIGHT
132 Minimum height when --height is given in percent (default: 10).
133 Ignored when --height is not specified.
134
135 --layout=LAYOUT
136 Choose the layout (default: default)
137
138 default Display from the bottom of the screen
139 reverse Display from the top of the screen
140 reverse-list Display from the top of the screen, prompt at the
141 bottom
142
143
144 --reverse
145 A synonym for --layout=reverse
146
147
148 --border[=STYLE]
149 Draw border around the finder
150
151 rounded Border with rounded corners (default)
152 sharp Border with sharp corners
153 horizontal Horizontal lines above and below the finder
154 vertical Vertical lines on each side of the finder
155 top
156 bottom
157 left
158 right
159 none
160
161
162 --no-unicode
163 Use ASCII characters instead of Unicode box drawing characters
164 to draw border
165
166
167 --margin=MARGIN
168 Comma-separated expression for margins around the finder.
169
170 TRBL Same margin for top, right, bottom, and left
171 TB,RL Vertical, horizontal margin
172 T,RL,B Top, horizontal, bottom margin
173 T,R,B,L Top, right, bottom, left margin
174
175 Each part can be given in absolute number or in percentage rela‐
176 tive to the terminal size with % suffix.
177
178 e.g.
179 fzf --margin 10%
180 fzf --margin 1,5%
181
182 --padding=PADDING
183 Comma-separated expression for padding inside the border. Pad‐
184 ding is distinguishable from margin only when --border option is
185 used.
186
187 e.g.
188 fzf --margin 5% --padding 5% --border --preview 'cat {}' \
189 --color bg:#222222,preview-bg:#333333
190
191 TRBL Same padding for top, right, bottom, and left
192 TB,RL Vertical, horizontal padding
193 T,RL,B Top, horizontal, bottom padding
194 T,R,B,L Top, right, bottom, left padding
195
196
197 --info=STYLE
198 Determines the display style of finder info.
199
200 default Display on the next line to the prompt
201 inline Display on the same line
202 hidden Do not display finder info
203
204
205 --no-info
206 A synonym for --info=hidden
207
208
209 --prompt=STR
210 Input prompt (default: '> ')
211
212 --pointer=STR
213 Pointer to the current line (default: '>')
214
215 --marker=STR
216 Multi-select marker (default: '>')
217
218 --header=STR
219 The given string will be printed as the sticky header. The lines
220 are displayed in the given order from top to bottom regardless
221 of --layout option, and are not affected by --with-nth. ANSI
222 color codes are processed even when --ansi is not set.
223
224 --header-lines=N
225 The first N lines of the input are treated as the sticky header.
226 When --with-nth is set, the lines are transformed just like the
227 other lines that follow.
228
229 Display
230 --ansi Enable processing of ANSI color codes
231
232 --tabstop=SPACES
233 Number of spaces for a tab character (default: 8)
234
235 --color=[BASE_SCHEME][,COLOR_NAME[:ANSI_COLOR][:ANSI_ATTRIBUTES]]...
236 Color configuration. The name of the base color scheme is fol‐
237 lowed by custom color mappings.
238
239 BASE SCHEME:
240 (default: dark on 256-color terminal, otherwise 16)
241
242 dark Color scheme for dark 256-color terminal
243 light Color scheme for light 256-color terminal
244 16 Color scheme for 16-color terminal
245 bw No colors (equivalent to --no-color)
246
247 COLOR NAMES:
248 fg Text
249 bg Background
250 preview-fg Preview window text
251 preview-bg Preview window background
252 hl Highlighted substrings
253 fg+ Text (current line)
254 bg+ Background (current line)
255 gutter Gutter on the left (defaults to bg+)
256 hl+ Highlighted substrings (current line)
257 query Query string
258 disabled Query string when search is disabled
259 info Info line (match counters)
260 border Border around the window (--border and --preview)
261 prompt Prompt
262 pointer Pointer to the current line
263 marker Multi-select marker
264 spinner Streaming input indicator
265 header Header
266
267 ANSI COLORS:
268 -1 Default terminal foreground/background color
269 (or the original color of the text)
270 0 ~ 15 16 base colors
271 16 ~ 255 ANSI 256 colors
272 #rrggbb 24-bit colors
273
274 ANSI ATTRIBUTES: (Only applies to foreground colors)
275 regular Clears previously set attributes; should precede
276 the other ones
277 bold
278 underline
279 reverse
280 dim
281 italic
282
283 EXAMPLES:
284
285 # Seoul256 theme with 8-bit colors
286 # (https://github.com/junegunn/seoul256.vim)
287 fzf --color='bg:237,bg+:236,info:143,border:240,spin‐
288 ner:108' \
289 --color='hl:65,fg:252,header:65,fg+:252' \
290 --color='pointer:161,marker:168,prompt:110,hl+:108'
291
292 # Seoul256 theme with 24-bit colors
293 fzf --color='bg:#4B4B4B,bg+:#3F3F3F,info:#BDBB72,bor‐
294 der:#6B6B6B,spinner:#98BC99' \
295 --color='hl:#719872,fg:#D9D9D9,header:#719872,fg+:#D9D9D9'
296 \
297 --color='pointer:#E12672,marker:#E17899,prompt:#98BEDE,hl+:#98BC99'
298
299 --no-bold
300 Do not use bold text
301
302 --black
303 Use black background
304
305 History
306 --history=HISTORY_FILE
307 Load search history from the specified file and update the file
308 on completion. When enabled, CTRL-N and CTRL-P are automati‐
309 cally remapped to next-history and previous-history.
310
311 --history-size=N
312 Maximum number of entries in the history file (default: 1000).
313 The file is automatically truncated when the number of the lines
314 exceeds the value.
315
316 Preview
317 --preview=COMMAND
318 Execute the given command for the current line and display the
319 result on the preview window. {} in the command is the place‐
320 holder that is replaced to the single-quoted string of the cur‐
321 rent line. To transform the replacement string, specify field
322 index expressions between the braces (See FIELD INDEX EXPRESSION
323 for the details).
324
325 e.g.
326 fzf --preview='head -$LINES {}'
327 ls -l | fzf --preview="echo user={3} when={-4..-2}; cat
328 {-1}" --header-lines=1
329
330 fzf exports $FZF_PREVIEW_LINES and $FZF_PREVIEW_COLUMNS so that
331 they represent the exact size of the preview window. (It also
332 overrides $LINES and $COLUMNS with the same values but they can
333 be reset by the default shell, so prefer to refer to the ones
334 with FZF_PREVIEW_ prefix.)
335
336 A placeholder expression starting with + flag will be replaced
337 to the space-separated list of the selected lines (or the cur‐
338 rent line if no selection was made) individually quoted.
339
340 e.g.
341 fzf --multi --preview='head -10 {+}'
342 git log --oneline | fzf --multi --preview 'git show {+1}'
343
344 When using a field index expression, leading and trailing white‐
345 space is stripped from the replacement string. To preserve the
346 whitespace, use the s flag.
347
348 Also, {q} is replaced to the current query string, and {n} is
349 replaced to zero-based ordinal index of the line. Use {+n} if
350 you want all index numbers when multiple lines are selected.
351
352 A placeholder expression with f flag is replaced to the path of
353 a temporary file that holds the evaluated list. This is useful
354 when you multi-select a large number of items and the length of
355 the evaluated string may exceed ARG_MAX.
356
357 e.g.
358 # Press CTRL-A to select 100K items and see the sum of all
359 the numbers.
360 # This won't work properly without 'f' flag due to ARG_MAX
361 limit.
362 seq 100000 | fzf --multi --bind ctrl-a:select-all \
363 --preview "awk '{sum+=} END {print sum}'
364 {+f}"
365
366 Note that you can escape a placeholder pattern by prepending a
367 backslash.
368
369 Preview window will be updated even when there is no match for
370 the current query if any of the placeholder expressions evalu‐
371 ates to a non-empty string.
372
373 Since 0.24.0, fzf can render partial preview content before the
374 preview command completes. ANSI escape sequence for clearing the
375 display (CSI 2 J) is supported, so you can use it to implement
376 preview window that is constantly updating.
377
378 e.g.
379 fzf --preview 'for i in $(seq 100000); do
380 (( i % 200 == 0 )) && printf "\033[2J"
381 echo "$i"
382 sleep 0.01
383 done'
384
385 --preview-window=[POSITION][,SIZE[%]][,border-BOR‐
386 DER_OPT][,[no]wrap][,[no]follow][,[no]cycle][,[no]hidden][,+SCROLL[OFF‐
387 SETS][/DENOM]][,~HEADER_LINES][,default]
388
389 POSITION: (default: right)
390 up
391 down
392 left
393 right
394
395 Determines the layout of the preview window.
396
397 * If the argument contains :hidden, the preview window will be
398 hidden by default until toggle-preview action is triggered.
399
400 * If size is given as 0, preview window will not be visible, but
401 fzf will still execute the command in the background.
402
403 * Long lines are truncated by default. Line wrap can be enabled
404 with :wrap flag.
405
406 * Preview window will automatically scroll to the bottom when
407 :follow flag is set, similarly to how tail -f works.
408
409 e.g.
410 fzf --preview-window follow --preview 'for i in
411 $(seq 100000); do
412 echo "$i"
413 sleep 0.01
414 (( i % 300 == 0 )) && printf "\033[2J"
415 done'
416
417 * Cyclic scrolling is enabled with :cycle flag.
418
419 * To change the style of the border of the preview window, spec‐
420 ify one of the options for --border with border- prefix. e.g.
421 border-rounded (border with rounded edges, default), border-
422 sharp (border with sharp edges), border-left, border-none, etc.
423
424 * [:+SCROLL[OFFSETS][/DENOM]] determines the initial scroll off‐
425 set of the preview window.
426
427 - SCROLL can be either a numeric integer or a single-field in‐
428 dex expression that refers to a numeric integer.
429
430 - The optional OFFSETS part is for adjusting the base offset.
431 It should be given as a series of signed integers (-INTEGER or
432 +INTEGER).
433
434 - The final /DENOM part is for specifying a fraction of the
435 preview window height.
436
437 * ~HEADER_LINES keeps the top N lines as the fixed header so
438 that they are always visible.
439
440 * default resets all options previously set to the default.
441
442 e.g.
443 # Non-default scroll window positions and sizes
444 fzf --preview="head {}" --preview-window=up,30%
445 fzf --preview="file {}" --preview-window=down,1
446
447 # Initial scroll offset is set to the line number of
448 each line of
449 # git grep output *minus* 5 lines (-5)
450 git grep --line-number '' |
451 fzf --delimiter : --preview 'nl {1}' --preview-
452 window '+{2}-5'
453
454 # Preview with bat, matching line in the middle of
455 the window below
456 # the fixed header of the top 3 lines
457 #
458 # ~3 Top 3 lines as the fixed header
459 # +{2} Base scroll offset extracted from the sec‐
460 ond field
461 # +3 Extra offset to compensate for the 3-line
462 header
463 # /2 Put in the middle of the preview area
464 #
465 git grep --line-number '' |
466 fzf --delimiter : \
467 --preview 'bat --style=full --color=always
468 --highlight-line {2} {1}' \
469 --preview-window '~3,+{2}+3/2'
470
471 # Display top 3 lines as the fixed header
472 fzf --preview 'bat --style=full --color=always {}'
473 --preview-window '~3'
474
475
476 Scripting
477 -q, --query=STR
478 Start the finder with the given query
479
480 -1, --select-1
481 If there is only one match for the initial query (--query), do
482 not start interactive finder and automatically select the only
483 match
484
485 -0, --exit-0
486 If there is no match for the initial query (--query), do not
487 start interactive finder and exit immediately
488
489 -f, --filter=STR
490 Filter mode. Do not start interactive finder. When used with
491 --no-sort, fzf becomes a fuzzy-version of grep.
492
493 --print-query
494 Print query as the first line
495
496 --expect=KEY[,..]
497 Comma-separated list of keys that can be used to complete fzf in
498 addition to the default enter key. When this option is set, fzf
499 will print the name of the key pressed as the first line of its
500 output (or as the second line if --print-query is also used).
501 The line will be empty if fzf is completed with the default en‐
502 ter key. If --expect option is specified multiple times, fzf
503 will expect the union of the keys. --no-expect will clear the
504 list.
505
506 e.g.
507 fzf --expect=ctrl-v,ctrl-t,alt-s --expect=f1,f2,~,@
508
509 --read0
510 Read input delimited by ASCII NUL characters instead of newline
511 characters
512
513 --print0
514 Print output delimited by ASCII NUL characters instead of new‐
515 line characters
516
517 --no-clear
518 Do not clear finder interface on exit. If fzf was started in
519 full screen mode, it will not switch back to the original
520 screen, so you'll have to manually run tput rmcup to return.
521 This option can be used to avoid flickering of the screen when
522 your application needs to start fzf multiple times in order.
523
524 --sync Synchronous search for multi-staged filtering. If specified, fzf
525 will launch ncurses finder only after the input stream is com‐
526 plete.
527
528 e.g. fzf --multi | fzf --sync
529
530 --version
531 Display version information and exit
532
533
534 Note that most options have the opposite versions with --no- prefix.
535
536
538 FZF_DEFAULT_COMMAND
539 Default command to use when input is tty. On *nix systems, fzf
540 runs the command with $SHELL -c if SHELL is set, otherwise with
541 sh -c, so in this case make sure that the command is POSIX-com‐
542 pliant.
543
544 FZF_DEFAULT_OPTS
545 Default options. e.g. export FZF_DEFAULT_OPTS="--extended --cy‐
546 cle"
547
548
550 0 Normal exit
551 1 No match
552 2 Error
553 130 Interrupted with CTRL-C or ESC
554
555
557 A field index expression can be a non-zero integer or a range expres‐
558 sion ([BEGIN]..[END]). --nth and --with-nth take a comma-separated list
559 of field index expressions.
560
561
562 Examples
563 1 The 1st field
564 2 The 2nd field
565 -1 The last field
566 -2 The 2nd to last field
567 3..5 From the 3rd field to the 5th field
568 2.. From the 2nd field to the last field
569 ..-3 From the 1st field to the 3rd to the last field
570 .. All the fields
571
572
574 Unless specified otherwise, fzf will start in "extended-search mode".
575 In this mode, you can specify multiple patterns delimited by spaces,
576 such as: 'wild ^music .mp3$ sbtrkt !rmx
577
578 You can prepend a backslash to a space (\ ) to match a literal space
579 character.
580
581
582 Exact-match (quoted)
583 A term that is prefixed by a single-quote character (') is interpreted
584 as an "exact-match" (or "non-fuzzy") term. fzf will search for the ex‐
585 act occurrences of the string.
586
587
588 Anchored-match
589 A term can be prefixed by ^, or suffixed by $ to become an anchored-
590 match term. Then fzf will search for the lines that start with or end
591 with the given string. An anchored-match term is also an exact-match
592 term.
593
594
595 Negation
596 If a term is prefixed by !, fzf will exclude the lines that satisfy the
597 term from the result. In this case, fzf performs exact match by de‐
598 fault.
599
600
601 Exact-match by default
602 If you don't prefer fuzzy matching and do not wish to "quote" (prefix‐
603 ing with ') every word, start fzf with -e or --exact option. Note that
604 when --exact is set, '-prefix "unquotes" the term.
605
606
607 OR operator
608 A single bar character term acts as an OR operator. For example, the
609 following query matches entries that start with core and end with ei‐
610 ther go, rb, or py.
611
612 e.g. ^core go$ | rb$ | py$
613
614
616 --bind option allows you to bind a key or an event to one or more ac‐
617 tions. You can use it to customize key bindings or implement dynamic
618 behaviors.
619
620 --bind takes a comma-separated list of binding expressions. Each bind‐
621 ing expression is KEY:ACTION or EVENT:ACTION.
622
623 e.g.
624 fzf --bind=ctrl-j:accept,ctrl-k:kill-line
625
626
627 AVAILABLE KEYS: (SYNONYMS)
628 ctrl-[a-z]
629 ctrl-space
630 ctrl-\
631 ctrl-]
632 ctrl-^ (ctrl-6)
633 ctrl-/ (ctrl-_)
634 ctrl-alt-[a-z]
635 alt-[*] (Any case-sensitive single character is allowed)
636 f[1-12]
637 enter (return ctrl-m)
638 space
639 bspace (bs)
640 alt-up
641 alt-down
642 alt-left
643 alt-right
644 alt-enter
645 alt-space
646 alt-bspace (alt-bs)
647 tab
648 btab (shift-tab)
649 esc
650 del
651 up
652 down
653 left
654 right
655 home
656 end
657 insert
658 pgup (page-up)
659 pgdn (page-down)
660 shift-up
661 shift-down
662 shift-left
663 shift-right
664 alt-shift-up
665 alt-shift-down
666 alt-shift-left
667 alt-shift-right
668 left-click
669 right-click
670 double-click
671 or any single character
672
673
674 AVAILABLE EVENTS:
675 change
676 Triggered whenever the query string is changed
677
678 e.g.
679 # Move cursor to the first entry whenever the query is
680 changed
681 fzf --bind change:first
682
683 backward-eof
684 Triggered when the query string is already empty and you try to
685 delete it backward.
686
687 e.g.
688 fzf --bind backward-eof:abort
689
690
691 AVAILABLE ACTIONS:
692 A key or an event can be bound to one or more of the following actions.
693
694 ACTION: DEFAULT BINDINGS (NOTES):
695 abort ctrl-c ctrl-g ctrl-q esc
696 accept enter double-click
697 accept-non-empty (same as accept except that it prevents
698 fzf from exiting without selection)
699 backward-char ctrl-b left
700 backward-delete-char ctrl-h bspace
701 backward-delete-char/eof (same as backward-delete-char except
702 aborts fzf if query is empty)
703 backward-kill-word alt-bs
704 backward-word alt-b shift-left
705 beginning-of-line ctrl-a home
706 cancel (clear query string if not empty, abort
707 fzf otherwise)
708 change-prompt(...) (change prompt to the given string)
709 clear-screen ctrl-l
710 clear-selection (clear multi-selection)
711 close (close preview window if open, abort fzf
712 otherwise)
713 clear-query (clear query string)
714 delete-char del
715 delete-char/eof ctrl-d (same as delete-char except aborts
716 fzf if query is empty)
717 deselect
718 deselect-all (deselect all matches)
719 disable-search (disable search functionality)
720 down ctrl-j ctrl-n down
721 enable-search (enable search functionality)
722 end-of-line ctrl-e end
723 execute(...) (see below for the details)
724 execute-silent(...) (see below for the details)
725 first (move to the first match)
726 forward-char ctrl-f right
727 forward-word alt-f shift-right
728 ignore
729 jump (EasyMotion-like 2-keystroke movement)
730 jump-accept (jump and accept)
731 kill-line
732 kill-word alt-d
733 last (move to the last match)
734 next-history (ctrl-n on --history)
735 page-down pgdn
736 page-up pgup
737 half-page-down
738 half-page-up
739 preview(...) (see below for the details)
740 preview-down shift-down
741 preview-up shift-up
742 preview-page-down
743 preview-page-up
744 preview-half-page-down
745 preview-half-page-up
746 preview-bottom
747 preview-top
748 previous-history (ctrl-p on --history)
749 print-query (print query and exit)
750 refresh-preview
751 reload(...) (see below for the details)
752 replace-query (replace query string with the current
753 selection)
754 select
755 select-all (select all matches)
756 toggle (right-click)
757 toggle-all (toggle all matches)
758 toggle+down ctrl-i (tab)
759 toggle-in (--layout=reverse* ? toggle+up : tog‐
760 gle+down)
761 toggle-out (--layout=reverse* ? toggle+down : tog‐
762 gle+up)
763 toggle-preview
764 toggle-preview-wrap
765 toggle-search (toggle search functionality)
766 toggle-sort
767 toggle+up btab (shift-tab)
768 unbind(...) (unbind bindings)
769 unix-line-discard ctrl-u
770 unix-word-rubout ctrl-w
771 up ctrl-k ctrl-p up
772 yank ctrl-y
773
774
775 ACTION COMPOSITION
776 Multiple actions can be chained using + separator.
777
778 e.g.
779 fzf --multi --bind 'ctrl-a:select-all+accept'
780 fzf --multi --bind 'ctrl-a:select-all' --bind 'ctrl-a:+accept'
781
782
783 ACTION ARGUMENT
784 An action denoted with (...) suffix takes an argument.
785
786 e.g.
787 fzf --bind 'ctrl-a:change-prompt(NewPrompt> )'
788 fzf --bind 'ctrl-v:preview(cat {})' --preview-window hidden
789
790 If the argument contains parentheses, fzf may fail to parse the expres‐
791 sion. In that case, you can use any of the following alternative nota‐
792 tions to avoid parse errors.
793
794 action-name[...]
795 action-name~...~
796 action-name!...!
797 action-name@...@
798 action-name#...#
799 action-name$...$
800 action-name%...%
801 action-name^...^
802 action-name&...&
803 action-name*...*
804 action-name;...;
805 action-name/.../
806 action-name|...|
807 action-name:...
808 The last one is the special form that frees you from parse er‐
809 rors as it does not expect the closing character. The catch is
810 that it should be the last one in the comma-separated list of
811 key-action pairs.
812
813
814 COMMAND EXECUTION
815 With execute(...) action, you can execute arbitrary commands without
816 leaving fzf. For example, you can turn fzf into a simple file browser
817 by binding enter key to less command like follows.
818
819 fzf --bind "enter:execute(less {})"
820
821 You can use the same placeholder expressions as in --preview.
822
823 fzf switches to the alternate screen when executing a command. However,
824 if the command is expected to complete quickly, and you are not inter‐
825 ested in its output, you might want to use execute-silent instead,
826 which silently executes the command without the switching. Note that
827 fzf will not be responsive until the command is complete. For asynchro‐
828 nous execution, start your command as a background process (i.e. ap‐
829 pending &).
830
831 On *nix systems, fzf runs the command with $SHELL -c if SHELL is set,
832 otherwise with sh -c, so in this case make sure that the command is
833 POSIX-compliant.
834
835
836 RELOAD INPUT
837 reload(...) action is used to dynamically update the input list without
838 restarting fzf. It takes the same command template with placeholder ex‐
839 pressions as execute(...).
840
841 See https://github.com/junegunn/fzf/issues/1750 for more info.
842
843 e.g.
844 # Update the list of processes by pressing CTRL-R
845 ps -ef | fzf --bind 'ctrl-r:reload(ps -ef)' --header 'Press CTRL-R
846 to reload' \
847 --header-lines=1 --layout=reverse
848
849 # Integration with ripgrep
850 RG_PREFIX="rg --column --line-number --no-heading --color=always
851 --smart-case "
852 INITIAL_QUERY="foobar"
853 FZF_DEFAULT_COMMAND="$RG_PREFIX '$INITIAL_QUERY'" \
854 fzf --bind "change:reload:$RG_PREFIX {q} || true" \
855 --ansi --disabled --query "$INITIAL_QUERY"
856
857
858 PREVIEW BINDING
859 With preview(...) action, you can specify multiple different preview
860 commands in addition to the default preview command given by --preview
861 option.
862
863 e.g.
864
865 # Default preview command with an extra preview binding
866 fzf --preview 'file {}' --bind '?:preview:cat {}'
867
868 # A preview binding with no default preview command
869 # (Preview window is initially empty)
870 fzf --bind '?:preview:cat {}'
871
872 # Preview window hidden by default, it appears when you first hit
873 '?'
874 fzf --bind '?:preview:cat {}' --preview-window hidden
875
876
878 Junegunn Choi (junegunn.c@gmail.com)
879
880
882 Project homepage:
883 https://github.com/junegunn/fzf
884
885 Extra Vim plugin:
886 https://github.com/junegunn/fzf.vim
887
888
890 MIT
891
892
893
894fzf 0.27.1 May 2021 fzf(1)