Releases: junegunn/fzf
Releases · junegunn/fzf
0.32.1
- 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
- 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
- Different bonus points to different categories of word boundaries
- 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.
- Favors the line with shorter matched chunk. A chunk is a set of
- Bug fixes and improvements
0.31.0
- 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
- 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 afterunbind
- Bug fixes and improvements
0.29.0
- Added
change-preview(...)
action to change the--preview
command- cf.
preview(...)
is a one-off action that doesn't change the default
preview command
- cf.
- 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|)'
- You can rotate through the different options separated by
- Fixed rendering of the prompt line when overflow occurs with
--info=inline
0.28.0
- Added
--header-first
option to print header before the prompt linefzf --header $'Welcome to fzf\n▔▔▔▔▔▔▔▔▔▔▔▔▔▔' --reverse --height 30% --border --header-first
- Added
--scroll-off=LINES
option (similar toscrolloff
option of Vim)- You can set it to a very large number so that the cursor stays in the
middle of the screen while scrollingfzf --scroll-off=5 fzf --scroll-off=999
- You can set it to a very large number so that the cursor stays in the
- Fixed bug where preview window is not updated on
reload
(#2644) - fzf on Windows will also use
$SHELL
to execute external programs- See #2638 and #2647
- Thanks to @rashil2000, @vovcacik, and @janlazo
0.27.3
- Preview window is
hidden
by default when there arepreview
bindings but--preview
command is not given - Fixed bug where
{n}
is not properly reset onreload
- Fixed bug where spinner is not displayed on
reload
- Enhancements in tcell renderer for Windows (#2616)
- Vim plugin
sinklist
is added as a synonym tosink*
so that it's easier to add a function to a spec dictionarylet 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
0.27.1
- Added
unbind
action. In the following Ripgrep launcher example, you can useunbind(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 } }
- Vim plugin will stop immediately even when the source command hasn't finished
0.27.0
- 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!)