Skip to content

Releases: junegunn/fzf

0.32.1

08 Aug 15:01
0.32.1
4993d19
Compare
Choose a tag to compare
  • Fixed incorrect ordering of --tiebreak=chunk
  • fzf-tmux will show fzf border instead of tmux popup border (requires tmux 3.3)
    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
    
    # Key bindings (CTRL-T, CTRL-R, ALT-C) will use these options
    export FZF_TMUX_OPTS='-p100%,60% --color=border:green --border=horizontal --padding 1,5 --margin 1,0'

0.32.0

02 Aug 12:59
0.32.0
f7e7259
Compare
Choose a tag to compare
  • Updated the scoring algorithm
    • Different bonus points to different categories of word boundaries
      (listed higher to lower bonus point)
      • Word after whitespace characters or beginning of the string
      • Word after common delimiter characters (/,:;|)
      • Word after other non-word characters
      # foo/bar.sh` is preferred over `foo-bar.sh` on `bar`
      fzf --query=bar --height=4 << EOF
      foo-bar.sh
      foo/bar.sh
      EOF
  • Added a new tiebreak chunk
    • Favors the line with shorter matched chunk. A chunk is a set of
      consecutive non-whitespace characters.
    • Unlike the default length, this scheme works well with tabular input
      # length prefers item #1, because the whole line is shorter,
      # chunk prefers item #2, because the matched chunk ("foo") is shorter
      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
    • If the input does not contain any spaces, chunk is equivalent to
      length. But we're not going to set it as the default because it is
      computationally more expensive.
  • Bug fixes and improvements

0.31.0

21 Jul 14:07
0.31.0
a0ef898
Compare
Choose a tag to compare
  • Added support for an alternative preview window layout that is activated
    when the size of the preview window is smaller than a certain threshold.
    # If the width of the preview window is smaller than 50 columns,
    # it will be displayed above the search window.
    fzf --preview 'cat {}' --preview-window 'right,50%,border-left,<50(up,30%,border-bottom)'
    
    # Or you can just hide it like so
    fzf --preview 'cat {}' --preview-window '<50(hidden)'
  • fzf now uses SGR mouse mode to properly support mouse on larger terminals
  • You can now use characters that do not satisfy unicode.IsGraphic constraint
    for --marker, --pointer, and --ellipsis. Allows Nerd Fonts and stuff.
    Use at your own risk.
  • Bug fixes and improvements
  • Shell extension
    • kill completion now requires trigger sequence (**) for consistency

0.30.0

04 Apr 14:07
0.30.0
2093667
Compare
Choose a tag to compare
  • Fixed cursor flickering over the screen by hiding it during rendering
  • Added --ellipsis option. You can take advantage of it to make fzf
    effectively search non-visible parts of the item.
    # Search against hidden line numbers on the far right
    nl /usr/share/dict/words                  |
      awk '{printf "%s%1000s\n", $2, $1}'     |
      fzf --nth=-1 --no-hscroll --ellipsis='' |
      awk '{print $2}'
  • Added rebind action for restoring bindings after unbind
  • Bug fixes and improvements

0.29.0

24 Dec 16:56
0.29.0
dc975e8
Compare
Choose a tag to compare
  • Added change-preview(...) action to change the --preview command
    • cf. preview(...) is a one-off action that doesn't change the default
      preview command
  • Added change-preview-window(...) action
    • You can rotate through the different options separated by |
      fzf --preview 'cat {}' --preview-window right,40% \
          --bind 'ctrl-/:change-preview-window(right,70%|down,40%,border-top|hidden|)'
  • Fixed rendering of the prompt line when overflow occurs with --info=inline

0.28.0

03 Nov 16:10
0.28.0
e4c3ecc
Compare
Choose a tag to compare
  • Added --header-first option to print header before the prompt line
    fzf --header $'Welcome to fzf\n▔▔▔▔▔▔▔▔▔▔▔▔▔▔' --reverse --height 30% --border --header-first
  • Added --scroll-off=LINES option (similar to scrolloff option of Vim)
    • You can set it to a very large number so that the cursor stays in the
      middle of the screen while scrolling
      fzf --scroll-off=5
      fzf --scroll-off=999
  • Fixed bug where preview window is not updated on reload (#2644)
  • fzf on Windows will also use $SHELL to execute external programs

0.27.3

15 Oct 15:07
0.27.3
4138333
Compare
Choose a tag to compare
  • Preview window is hidden by default when there are preview bindings but --preview command is not given
  • Fixed bug where {n} is not properly reset on reload
  • Fixed bug where spinner is not displayed on reload
  • Enhancements in tcell renderer for Windows (#2616)
  • Vim plugin
    • sinklist is added as a synonym to sink* so that it's easier to add a function to a spec dictionary
      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 compatibility

0.27.2

01 Jun 08:06
0.27.2
e086f0b
Compare
Choose a tag to compare
  • 16 base ANSI colors can be specified by their names
    fzf --color fg:3,fg+:11
    fzf --color fg:yellow,fg+:bright-yellow
  • Fix bug where --read0 not properly displaying long lines

0.27.1

22 May 04:25
0.27.1
0818dbc
Compare
Choose a tag to compare
  • Added unbind action. In the following Ripgrep launcher example, you can use unbind(reload) to switch to fzf-only filtering mode.
  • Vim plugin
    • Vim plugin will stop immediately even when the source command hasn't finished
      " fzf will read the stream file while allowing other processes to append to it
      call fzf#run(fzf#wrap({'source': 'cat /dev/null > /tmp/stream; tail -f /tmp/stream'}))
    • It is now possible to open popup window relative to the currrent window
      let g:fzf_layout = { 'window': { 'width': 0.9, 'height': 0.6, 'relative': v:true, 'yoffset': 1.0 } }

0.27.0

06 Apr 13:57
0.27.0
19759ed
Compare
Choose a tag to compare
  • More border options for --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
  • Automatically set /dev/tty as STDIN on execute action
    # Redirect /dev/tty to suppress "Vim: Warning: Input is not from a terminal"
    # ls | fzf --bind "enter:execute(vim {} < /dev/tty)"
    
    # "< /dev/tty" part is no longer needed
    ls | fzf --bind "enter:execute(vim {})"
  • Bug fixes and improvements
  • Signed and notarized macOS binaries
    (Huge thanks to BACKERS.md!)