Skip to content

Releases: junegunn/fzf

0.58.0

19 Jan 17:11
v0.58.0
65db735
Compare
Choose a tag to compare

Release highlights: https://junegunn.github.io/fzf/releases/0.58.0/

This version introduces three new border types, --list-border, --input-border, and --header-border, offering much greater flexibility for customizing the user interface.

Also, fzf now offers "style presets" for quick customization, which can be activated using the --style option.

Preset Screenshot
default
full
minimal
  • Style presets (#4160)
    • --style=full[:BORDER_STYLE]
    • --style=default
    • --style=minimal
  • Border and label for the list section (#4148)
    • Options
      • --list-border[=STYLE]
      • --list-label=LABEL
      • --list-label-pos=COL[:bottom]
    • Colors
      • list-fg
      • list-bg
      • list-border
      • list-label
    • Actions
      • change-list-label
      • transform-list-label
  • Border and label for the input section (prompt line and info line) (#4154)
    • Options
      • --input-border[=STYLE]
      • --input-label=LABEL
      • --input-label-pos=COL[:bottom]
    • Colors
      • input-fg (query)
      • input-bg
      • input-border
      • input-label
    • Actions
      • change-input-label
      • transform-input-label
  • Border and label for the header section (#4159)
    • Options
      • --header-border[=STYLE]
      • --header-label=LABEL
      • --header-label-pos=COL[:bottom]
    • Colors
      • header-fg (header)
      • header-bg
      • header-border
      • header-label
    • Actions
      • change-header-label
      • transform-header-label
  • Added --preview-border[=STYLE] as short for --preview-window=border[-STYLE]
  • Added new preview border style line which draws a single separator line between the preview window and the rest of the interface
  • fzf will now render a dashed line (┈┈) in each --gap for better visual separation.
    # All bash/zsh functions, highlighted
    declare -f |
      perl -0 -pe 's/^}\n/}\0/gm' |
      bat --plain --language bash --color always |
      fzf --read0 --ansi --layout reverse --multi --highlight-line --gap
    • You can customize the line using --gap-line[=STR].
  • You can specify border-native to --tmux so that native tmux border is used instead of --border. This can be useful if you start a different program from inside the popup.
    fzf --tmux border-native --bind 'enter:execute:less {}'
  • Added toggle-multi-line action
  • Added toggle-hscroll action
  • Added change-nth action for dynamically changing the value of the --nth option
    # Start with --nth 1, then 2, then 3, then back to the default, 1
    echo 'foo foobar foobarbaz' | fzf --bind 'space:change-nth(2|3|)' --nth 1 -q foo
  • --nth parts of each line can now be rendered in a different text style
    # nth in a different style
    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
    
    # Dim the other parts
    ls -al | fzf --nth -1 --color nth:regular,fg:dim
    
    # With 'change-nth'. The current nth option is exported as $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}> "'
  • A single-character delimiter is now treated as a plain string delimiter rather than a regular expression delimiter, even if it's a regular expression meta-character.
    • This means you can just write --delimiter '|' instead of escaping it as --delimiter '\|'
  • Bug fixes
  • Bug fixes and improvements in fish scripts (thanks to @bitraid)

0.57.0

15 Dec 08:07
v0.57.0
0476a65
Compare
Choose a tag to compare
  • You can now resize the preview window by dragging the border
  • Built-in walker improvements
    • --walker-root can take multiple directory arguments. e.g. --walker-root include src lib
    • --walker-skip can handle multi-component patterns. e.g. --walker-skip target/build
  • Removed long processing delay when displaying images in the preview window
  • FZF_PREVIEW_* environment variables are exported to all child processes (#4098)
  • Bug fixes in fish scripts

0.56.3

15 Nov 01:07
v0.56.3
add1aec
Compare
Choose a tag to compare
  • Bug fixes in zsh scripts
    • fix(zsh): handle backtick trigger edge case (#4090)
    • revert(zsh): remove 'fc -RI' call in the history widget (#4093)
    • Thanks to @LangLangBart for the contributions

0.56.2

11 Nov 15:59
v0.56.2
215ab48
Compare
Choose a tag to compare
  • Bug fixes
    • Fixed abnormal scrolling behavior when --wrap is set (#4083)
    • [zsh] Fixed warning message when ksh_arrays is set (#4084)

0.56.1

10 Nov 14:25
v0.56.1
64c6160
Compare
Choose a tag to compare
  • Bug fixes and improvements
    • Fixed a race condition which would cause fzf to present stale results after reload (#4070)
    • page-up and page-down actions now work correctly with multi-line items (#4069)
    • {n} is allowed in SCROLL expression in --preview-window (#4079)
    • [zsh] Fixed regression in history loading with shared option (#4071)
    • [zsh] Better command extraction in zsh completion (#4082)
  • Thanks to @LangLangBart, @jaydee-coder, @alex-huff, and @vejkse for the contributions

0.56.0

27 Oct 03:07
v0.56.0
ff16877
Compare
Choose a tag to compare
  • Added --gap[=N] option to display empty lines between items.
    • This can be useful to visually separate adjacent multi-line items.
      # All bash functions, highlighted
      declare -f | perl -0777 -pe 's/^}\n/}\0/gm' |
        bat --plain --language bash --color always |
        fzf --read0 --ansi --reverse --multi --highlight-line --gap
      image
    • Or just to make the list easier to read. For single-line items, you probably want to set --color gutter:-1 as well to hide the gutter.
      fzf --info inline-right --gap --color gutter:-1
      image
  • Added noinfo option to --preview-window to hide the scroll indicator in the preview window
  • Bug fixes

0.55.0

29 Aug 08:13
v0.55.0
fc69308
Compare
Choose a tag to compare

Release highlights: https://junegunn.github.io/fzf/releases/0.55.0/

  • Added exact-boundary-match type to the search syntax. When a search term is single-quoted, fzf will search for the exact occurrences of the string with both ends at word boundaries.
    fzf --query "'here'" << EOF
    come here
    not there
    EOF
  • [bash] Fuzzy path completion is enabled for all commands
      1. If the default completion is not already set
      1. And if the current bash supports complete -D option
    • However, fuzzy completion for some commands can be "dynamically" disabled by the dynamic completion loader
    • See the comment in __fzf_default_completion function for more information
  • Comments are now allowed in $FZF_DEFAULT_OPTS and $FZF_DEFAULT_OPTS_FILE
    export FZF_DEFAULT_OPTS='
      # Layout options
      --layout=reverse
      --info=inline-right   # Show info on the right side of the prompt line
      # ...
    '
  • Hyperlinks (OSC 8) are now supported in the preview window and in the main window
    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\\Link to \e[32mfz\e[0mf\e]8;;\e\\ >>'"
  • The default --ellipsis is now ·· instead of ...
  • [vim] A spec can have exit callback that is called with the exit status of fzf
    • This can be used to clean up temporary resources or restore the original state when fzf is closed without a selection
  • Fixed --tmux bottom when the status line is not at the bottom
  • Fixed extra scroll offset in multi-line mode (--read0 or --wrap)
  • Added fallback ps command for kill completion on Cygwin

0.54.3

31 Jul 12:58
v0.54.3
af4917d
Compare
Choose a tag to compare
  • Fixed incompatibility of adaptive height specification and 'start:reload'
    # A regression in 0.54.0 would cause this to fail
    fzf --height '~100%' --bind 'start:reload:seq 10'
  • Environment variables are now available to $FZF_DEFAULT_COMMAND
    FZF_DEFAULT_COMMAND='echo $FZF_QUERY' fzf --query foo

0.54.2

26 Jul 10:12
v0.54.2
b896e0d
Compare
Choose a tag to compare
  • Fixed incorrect syntax highlighting of truncated multi-line entries
  • Updated GoReleaser to 2.1.0 to simplify notarization of macOS binaries
    • macOS archives will be in tar.gz format instead of zip format since we no longer notarize the zip files but binaries
  • (Windows) Reverted a mintty fix in 0.54.0
    • As a result, mouse may not work on mintty in fullscreen mode. However, fzf will correctly read non-ASCII input in fullscreen mode (--no-height).
    • fzf unfortunately cannot read non-ASCII input when not in fullscreen mode on Windows. So if you need to input non-ASCII characters, add --no-height to your $FZF_DEFAULT_OPTS.
    • Any help in fixing this issue will be appreciated (#3799, #3847).

0.54.1

19 Jul 08:14
v0.54.1
50fa90d
Compare
Choose a tag to compare