fzf(1) fzf - a command-line fuzzy finder fzf(1) NAME  fzf - a command-line fuzzy finder SYNOPSIS  fzf [options] DESCRIPTION  fzf is a general-purpose command-line fuzzy finder. OPTIONS  Search mode  -x, --extended  Extended-search mode. Since 0.10.9, this is enabled by default. You can disable it with +x or --no-extended.  -e, --exact  Enable exact-match  -i Case-insensitive match (default: smart-case match)  +i Case-sensitive match  --literal  Do not normalize latin script letters for matching.  --scheme=SCHEME  Choose scoring scheme tailored for different types of input.  default Generic scoring scheme designed to work well with any type of input  path Scoring scheme for paths (additional bonus point only after path separator)  history Scoring scheme for command history (no additional bonus points).  Sets --tiebreak=index as well.  --algo=TYPE  Fuzzy matching algorithm (default: v2)  v2 Optimal scoring algorithm (quality)  v1 Faster but not guaranteed to find the optimal result (performance)  -n, --nth=N[,..]  Comma-separated list of field index expressions for limiting search scope. See FIELD INDEX EXPRESSION for the details.  --with-nth=N[,..]  Transform the presentation of each line using field index expressions  -d, --delimiter=STR  Field delimiter regex for --nth and --with-nth (default: AWK-style)  --disabled  Do not perform search. With this option, fzf becomes a simple selector interface rather than a "fuzzy finder". You can later enable the search using enable-search or toggle-  search action.  Search result  +s, --no-sort  Do not sort the result  --tac Reverse the order of the input  e.g.  history | fzf --tac --no-sort  --tiebreak=CRI[,..]  Comma-separated list of sort criteria to apply when the scores are tied.  length Prefers line with shorter length  chunk Prefers line with shorter matched chunk (delimited by whitespaces)  begin Prefers line with matched substring closer to the beginning  end Prefers line with matched substring closer to the end  index Prefers line that appeared earlier in the input stream  - Each criterion should appear only once in the list  - index is only allowed at the end of the list  - index is implicitly appended to the list when not specified  - Default is length (or equivalently length,index)  - If end is found in the list, fzf will scan each line backwards  Interface  -m, --multi  Enable multi-select with tab/shift-tab. It optionally takes an integer argument which denotes the maximum number of items that can be selected.  +m, --no-multi  Disable multi-select  --no-mouse  Disable mouse  --bind=KEYBINDS  Comma-separated list of custom key bindings. See KEY/EVENT BINDINGS for the details.  --cycle  Enable cyclic scroll  --keep-right  Keep the right end of the line visible when it's too long. Effective only when the query string is empty.  --scroll-off=LINES  Number of screen lines to keep above or below when scrolling to the top or to the bottom (default: 0).  --no-hscroll  Disable horizontal scroll  --hscroll-off=COLS  Number of screen columns to keep to the right of the highlighted substring (default: 10). Setting it to a large value will cause the text to be positioned on the center of the  screen.  --filepath-word  Make word-wise movements and actions respect path separators. The following actions are affected:  backward-kill-word  backward-word  forward-word  kill-word  --jump-labels=CHARS  Label characters for jump and jump-accept  Layout  --height=HEIGHT[%]  Display fzf window below the cursor with the given height instead of using the full screen.  --min-height=HEIGHT  Minimum height when --height is given in percent (default: 10). Ignored when --height is not specified.  --layout=LAYOUT  Choose the layout (default: default)  default Display from the bottom of the screen  reverse Display from the top of the screen  reverse-list Display from the top of the screen, prompt at the bottom  --reverse  A synonym for --layout=reverse  --border[=BORDER_OPT]  Draw border around the finder  rounded Border with rounded corners (default)  sharp Border with sharp corners  horizontal Horizontal lines above and below the finder  vertical Vertical lines on each side of the finder  top (up)  bottom (down)  left  right  none  --no-unicode  Use ASCII characters instead of Unicode box drawing characters to draw border  --margin=MARGIN  Comma-separated expression for margins around the finder.  TRBL Same margin for top, right, bottom, and left  TB,RL Vertical, horizontal margin  T,RL,B Top, horizontal, bottom margin  T,R,B,L Top, right, bottom, left margin  Each part can be given in absolute number or in percentage relative to the terminal size with % suffix.  e.g.  fzf --margin 10%  fzf --margin 1,5%  --padding=PADDING  Comma-separated expression for padding inside the border. Padding is distinguishable from margin only when --border option is used.  e.g.  fzf --margin 5% --padding 5% --border --preview 'cat {}' \  --color bg:#222222,preview-bg:#333333  TRBL Same padding for top, right, bottom, and left  TB,RL Vertical, horizontal padding  T,RL,B Top, horizontal, bottom padding  T,R,B,L Top, right, bottom, left padding  --info=STYLE  Determines the display style of finder info.  default Display on the next line to the prompt  inline Display on the same line  hidden Do not display finder info  --no-info  A synonym for --info=hidden  --prompt=STR  Input prompt (default: '> ')  --pointer=STR  Pointer to the current line (default: '>')  --marker=STR  Multi-select marker (default: '>')  --header=STR  The given string will be printed as the sticky header. The lines are displayed in the given order from top to bottom regardless of --layout option, and are not affected by  --with-nth. ANSI color codes are processed even when --ansi is not set.  --header-lines=N  The first N lines of the input are treated as the sticky header. When --with-nth is set, the lines are transformed just like the other lines that follow.  --header-first  Print header before the prompt line  --ellipsis=STR  Ellipsis to show when line is truncated (default: '..')  Display  --ansi Enable processing of ANSI color codes  --tabstop=SPACES  Number of spaces for a tab character (default: 8)  --color=[BASE_SCHEME][,COLOR_NAME[:ANSI_COLOR][:ANSI_ATTRIBUTES]]...  Color configuration. The name of the base color scheme is followed by custom color mappings.  BASE SCHEME:  (default: dark on 256-color terminal, otherwise 16)  dark Color scheme for dark 256-color terminal  light Color scheme for light 256-color terminal  16 Color scheme for 16-color terminal  bw No colors (equivalent to --no-color)  COLOR NAMES:  fg Text  bg Background  preview-fg Preview window text  preview-bg Preview window background  hl Highlighted substrings  fg+ Text (current line)  bg+ Background (current line)  gutter Gutter on the left (defaults to bg+)  hl+ Highlighted substrings (current line)  query Query string  disabled Query string when search is disabled  info Info line (match counters)  border Border around the window (--border and --preview)  prompt Prompt  pointer Pointer to the current line  marker Multi-select marker  spinner Streaming input indicator  header Header  ANSI COLORS:  -1 Default terminal foreground/background color  (or the original color of the text)  0 ~ 15 16 base colors  black  red  green  yellow  blue  magenta  cyan  white  bright-black (gray | grey)  bright-red  bright-green  bright-yellow  bright-blue  bright-magenta  bright-cyan  bright-white  16 ~ 255 ANSI 256 colors  #rrggbb 24-bit colors  ANSI ATTRIBUTES: (Only applies to foreground colors)  regular Clears previously set attributes; should precede the other ones  bold  underline  reverse  dim  italic  strikethrough  EXAMPLES:  # Seoul256 theme with 8-bit colors  # (https://github.com/junegunn/seoul256.vim)  fzf --color='bg:237,bg+:236,info:143,border:240,spinner:108' \  --color='hl:65,fg:252,header:65,fg+:252' \  --color='pointer:161,marker:168,prompt:110,hl+:108'  # Seoul256 theme with 24-bit colors  fzf --color='bg:#4B4B4B,bg+:#3F3F3F,info:#BDBB72,border:#6B6B6B,spinner:#98BC99' \  --color='hl:#719872,fg:#D9D9D9,header:#719872,fg+:#D9D9D9' \  --color='pointer:#E12672,marker:#E17899,prompt:#98BEDE,hl+:#98BC99'  --no-bold  Do not use bold text  --black  Use black background  History  --history=HISTORY_FILE  Load search history from the specified file and update the file on completion. When enabled, CTRL-N and CTRL-P are automatically remapped to next-history and previous-history.  --history-size=N  Maximum number of entries in the history file (default: 1000). The file is automatically truncated when the number of the lines exceeds the value.  Preview  --preview=COMMAND  Execute the given command for the current line and display the result on the preview window. {} in the command is the placeholder that is replaced to the single-quoted string of  the current line. To transform the replacement string, specify field index expressions between the braces (See FIELD INDEX EXPRESSION for the details).  e.g.  fzf --preview='head -$LINES {}'  ls -l | fzf --preview="echo user={3} when={-4..-2}; cat {-1}" --header-lines=1  fzf exports $FZF_PREVIEW_LINES and $FZF_PREVIEW_COLUMNS so that they represent the exact size of the preview window. (It also overrides $LINES and $COLUMNS with the same values  but they can be reset by the default shell, so prefer to refer to the ones with FZF_PREVIEW_ prefix.)  A placeholder expression starting with + flag will be replaced to the space-separated list of the selected lines (or the current line if no selection was made) individually  quoted.  e.g.  fzf --multi --preview='head -10 {+}'  git log --oneline | fzf --multi --preview 'git show {+1}'  When using a field index expression, leading and trailing whitespace is stripped from the replacement string. To preserve the whitespace, use the s flag.  Also, {q} is replaced to the current query string, and {n} is replaced to zero-based ordinal index of the line. Use {+n} if you want all index numbers when multiple lines are  selected.  A placeholder expression with f flag is replaced to the path of a temporary file that holds the evaluated list. This is useful when you multi-select a large number of items and  the length of the evaluated string may exceed ARG_MAX.  e.g.  # Press CTRL-A to select 100K items and see the sum of all the numbers.  # This won't work properly without 'f' flag due to ARG_MAX limit.  seq 100000 | fzf --multi --bind ctrl-a:select-all \  --preview "awk '{sum+=\$1} END {print sum}' {+f}"  Note that you can escape a placeholder pattern by prepending a backslash.  Preview window will be updated even when there is no match for the current query if any of the placeholder expressions evaluates to a non-empty string.  Since 0.24.0, fzf can render partial preview content before the preview command completes. ANSI escape sequence for clearing the display (CSI 2 J) is supported, so you can use  it to implement preview window that is constantly updating.  e.g.  fzf --preview 'for i in $(seq 100000); do  (( i % 200 == 0 )) && printf "\033[2J"  echo "$i"  sleep 0.01  done'  --preview-window=[POSITION][,SIZE[%]][,border-BORDER_OPT][,[no]wrap][,[no]follow][,[no]cycle][,[no]hidden][,+SCROLL[OFFSETS][/DENOM]][,~HEADER_LINES][,default][,