Release highlights: https://junegunn.github.io/fzf/releases/0.74.0/
- On tmux 3.7 or above,
--popupstarts fzf in a floating pane instead of a popup (#4850)- Unlike a popup, a floating pane is not modal; you can switch to other panes and windows while fzf is running, move and resize the pane with the mouse, zoom it to fullscreen, and use copy-mode in it
- A floating pane always has a native border, which is what makes the pane movable and resizable, so
border-nativeis implied - A popup is used instead when a border style is explicitly specified with
--border, so that the fzf-drawn border is the only border shown (noneandlineare treated as no border)fzf --popup --border
--border-labelis set as the title of the floating pane, and is displayed on the border ifpane-border-statusis enabled in tmuxfzf --popup --border-label ' fzf '
- On Zellij,
--popupuses the native border by default, consistent with tmux, so that the pane can be moved and resized with the mouse; fzf draws its own border when a border style is explicitly specified with--border--border-labelis set as the name of the pane, displayed on the native border
- Added
result-finalevent, a variant ofresultthat is not triggered while the input stream is still open (#4835)- Use it for one-shot, per-query actions that would otherwise re-fire on every intermediate snapshot during loading
# 'result' fires per intermediate snapshot (header keeps updating during load); # 'result-final' fires once after the stream closes (footer shows the final count) (seq 100; sleep 1; seq 100) | fzf --query 1 \ --bind 'result:transform-header(echo result: $FZF_MATCH_COUNT),result-final:transform-footer(echo final: $FZF_MATCH_COUNT)'
- Use it for one-shot, per-query actions that would otherwise re-fire on every intermediate snapshot during loading
- Added
waitaction to block subsequent actions until search completes (#4825)- Useful for chaining query-changing actions with motion actions to ensure operations on complete results
# Wait for search to complete before moving to the best match fzf --bind 'start:change-query(foo)+wait+best'
- The initial loading of the input is also considered a search in progress, so
start:waitcan be used to wait until the input is fully loaded# Move to the last item after the input is fully loaded (seq 1000; sleep 1; seq 1001 2000) | fzf --bind 'start:wait+last'
- Useful for chaining query-changing actions with motion actions to ensure operations on complete results
- Bound
alt-lefttobackward-wordandalt-righttoforward-wordby default (#4833) - Bug fixes and improvements
- Skip
$FZF_CURRENT_ITEMexport when the item is larger than 64 KB; a huge item can overflowARG_MAXand break preview and other child commands withE2BIG(#4806) transformandbg-transformnow allow a bareputaction in the output to insert the key that triggered the action# Insert the typed key ('a') into the query fzf --bind 'a:transform:echo put'
ALT-Cin zsh no longer resolves symbolic links when changing the directory, consistent with thecdbuiltin (#4816) (@silverneko)- Fixed horizontal mouse wheel events being treated as vertical scrolling (#4848) (@jason5122)
- Fixed
bwtheme not inheriting overridden colors - fish:
CTRL-Rnow works when$fish_color_normalor$fish_color_commentis empty or invalid (#4831) (@bitraid) - Fixed empty-shell detection in the install script (#4813)
- Fixed the install script writing nushell source lines into the config files of other shells (#4812)
- Skip