Releases: junegunn/fzf
Releases ยท junegunn/fzf
0.56.3
0.56.2
0.56.1
- Bug fixes and improvements
- Fixed a race condition which would cause fzf to present stale results after
reload(#4070) page-upandpage-downactions now work correctly with multi-line items (#4069){n}is allowed inSCROLLexpression in--preview-window(#4079)- [zsh] Fixed regression in history loading with shared option (#4071)
- [zsh] Better command extraction in zsh completion (#4082)
- Fixed a race condition which would cause fzf to present stale results after
- Thanks to @LangLangBart, @jaydee-coder, @alex-huff, and @vejkse for the contributions
0.56.0
- 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
- Or just to make the list easier to read. For single-line items, you probably want to set
--color gutter:-1as well to hide the gutter.fzf --info inline-right --gap --color gutter:-1
- This can be useful to visually separate adjacent multi-line items.
- Added
noinfooption to--preview-windowto hide the scroll indicator in the preview window - Bug fixes
- Thanks to @LangLangBart, @akinomyoga, and @charlievieth for fixing the bugs
0.55.0
Release highlights: https://junegunn.github.io/fzf/releases/0.55.0/
- Added
exact-boundary-matchtype 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
-
- If the default completion is not already set
-
- And if the current bash supports
complete -Doption
- And if the current bash supports
- However, fuzzy completion for some commands can be "dynamically" disabled by the dynamic completion loader
- See the comment in
__fzf_default_completionfunction for more information
-
- Comments are now allowed in
$FZF_DEFAULT_OPTSand$FZF_DEFAULT_OPTS_FILEexport 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
--ellipsisis nowยทยทinstead of... - [vim] A spec can have
exitcallback 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 bottomwhen the status line is not at the bottom - Fixed extra scroll offset in multi-line mode (
--read0or--wrap) - Added fallback
pscommand forkillcompletion on Cygwin
0.54.3
- 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_COMMANDFZF_DEFAULT_COMMAND='echo $FZF_QUERY' fzf --query foo
0.54.2
- 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.gzformat instead ofzipformat since we no longer notarize the zip files but binaries
- macOS archives will be in
- (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-heightto your$FZF_DEFAULT_OPTS. - Any help in fixing this issue will be appreciated (#3799, #3847).
- As a result, mouse may not work on mintty in fullscreen mode. However, fzf will correctly read non-ASCII input in fullscreen mode (
0.54.1
- Updated fastwalk dependency for built-in directory walker
- Reverted ALT-C binding of fish to use
cdinstead ofbuiltin cdbuiltin cdwas introduced to work around a bug ofcdcoming fromzoxide init --cmd cd fishwhere it cannot handle--argument.- However, the default
cdof fish is actually a wrapper function for supportingcd -, so we want to use it instead. - See #3928 for more information and consider helping zoxide fix the bug.
0.54.0
Release highlights: https://junegunn.github.io/fzf/releases/0.54.0/
- Implemented line wrap of long items
--wrapoption enables line wrap--wrap-signcustomizes the sign for wrapped lines (default:โณ)toggle-wrapaction toggles line wraphistory | fzf --tac --wrap --bind 'ctrl-/:toggle-wrap' --wrap-sign $'\tโณ '
- fzf by default binds
CTRL-/andALT-/totoggle-wrap
- Updated shell integration scripts to leverage line wrap
- CTRL-R binding includes
--wrap-sign $'\tโณ 'to indent wrapped lines kill **completion uses--wrapto show the whole line by default instead of showing it in the preview window
- CTRL-R binding includes
- Added
--info-commandoption for customizing the info line# Prepend the current cursor position in yellow fzf --info-command='echo -e "\x1b[33;1m$FZF_POS\x1b[m/$FZF_INFO ๐"'
$FZF_INFOis set to the original info text- ANSI color codes are supported
- Pointer and marker signs can be set to empty strings
# Minimal style fzf --pointer '' --marker '' --prompt '' --info hidden
- Better cache management and improved rendering for
--tail - Improved
--syncbehavior- When
--syncis provided, fzf will not render the interface until the initial filtering and the associated actions (bound to any ofstart,load,result, orfocus) are complete.# fzf will not render intermediate states (sleep 1; seq 1000000; sleep 1) | fzf --sync --query 5 --listen --bind start:up,load:up,result:up,focus:change-header:Ready
- When
- GET endpoint is now available from
executeandtransformactions (it used to timeout due to lock conflict)fzf --listen --sync --bind 'focus:transform-header:curl -s localhost:$FZF_PORT?limit=0 | jq .' - Added
offset-middleaction to place the current item is in the middle of the screen - fzf will not start the initial reader when
reloadorreload-syncis bound tostartevent.fzf < /dev/nullor: | fzfare no longer required and extraneousloadevent will not fire due to the empty list.# Now this will work as expected. Previously, this would print an invalid header line. # `fzf < /dev/null` or `: | fzf` would fix the problem, but then an extraneous # `load` event would fire and the header would be prematurely updated. fzf --header 'Loading ...' --header-lines 1 \ --bind 'start:reload:sleep 1; ps -ef' \ --bind 'load:change-header:Loaded!'
- Fixed mouse support on Windows
- Fixed crash when using
--tiebreak=endwith very long items - zsh 5.0 compatibility (thanks to @LangLangBart)
- Fixed
--walker-skipto also skip symlinks to directories - Fixed
resultevent not fired when input stream is not complete - Built-in reader of the Windows binary will print forward slashes on MSYS and WSL (thanks to @charlievieth)
- New tags will have
vprefix so that they are available on https://proxy.golang.org/
0.53.0
Release highlights: https://junegunn.github.io/fzf/releases/0.53.0/
- Multi-line display
- See Processing multi-line items
- fzf can now display 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 # Ripgrep multi-line output rg --pretty bash | perl -0777 -pe 's/\n\n/\n\0/gm' | fzf --read0 --ansi --multi --highlight-line --reverse --tmux 70%
- To disable multi-line display, use
--no-multi-line
- To disable multi-line display, use
- CTRL-R bindings of bash, zsh, and fish have been updated to leverage multi-line display
- The default
--pointerand--markerhave been changed from>to Unicode bar characters as they look better with multi-line items - Added
--marker-multi-lineto customize the select marker for multi-line entries with the default set toโปโโนโปFirst line โ... โนLast line
- Native tmux integration
- Added
--tmuxoption to replace fzf-tmux script and simplify distribution# --tmux [center|top|bottom|left|right][,SIZE[%]][,SIZE[%]] # Center, 100% width and 70% height fzf --tmux 100%,70% --border horizontal --padding 1,2 # Left, 30% width fzf --tmux left,30% # Bottom, 50% height fzf --tmux bottom,50%
- To keep the implementation simple, it only uses popups. You need tmux 3.3 or later.
- To use
--tmuxin Vim plugin:let g:fzf_layout = { 'tmux': '100%,70%' }
- Added
- Added support for endless input streams
- See Browsing log stream with fzf
- Added
--tail=NUMoption to limit the number of items to keep in memory. This is useful when you want to browse an endless stream of data (e.g. log stream) with fzf while limiting memory usage.# Interactive filtering of a log stream tail -f *.log | fzf --tail 100000 --tac --no-sort --exact
- Better Windows Support
- fzf now works on Git bash (mintty) out of the box via winpty integration
- Many fixes and improvements for Windows
- man page is now embedded in the binary;
fzf --manto see it - Changed the default
--scroll-offto 3, as we think it's a better default - Process started by
executeaction now directly writes to and reads from/dev/tty. Manual/dev/ttyredirection for interactive programs is no longer required.# Vim will work fine without /dev/tty redirection ls | fzf --bind 'space:execute:vim {}' > selected
- Added
print(...)action to queue an arbitrary string to be printed on exit. This was mainly added to work around the limitation of--expectwhere it's not compatible with--bindon the same key and it would ignore other actions bound to it.# This doesn't work as expected because --expect is not compatible with --bind fzf --multi --expect ctrl-y --bind 'ctrl-y:select-all' # This is something you can do instead fzf --multi --bind 'enter:print()+accept,ctrl-y:select-all+print(ctrl-y)+accept'
- We also considered making them compatible, but realized that some users may have been relying on the current behavior.
NO_COLORenvironment variable is now respected. If the variable is set, fzf defaults to--no-colorunless otherwise specified.