Releases: junegunn/fzf
Releases · junegunn/fzf
0.58.0
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
- Options
- 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
- Options
- 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
- Options
- 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 customize the line using
- 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 '\|'
- This means you can just write
- Bug fixes
- Bug fixes and improvements in fish scripts (thanks to @bitraid)
0.57.0
- 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
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-up
andpage-down
actions now work correctly with multi-line items (#4069){n}
is allowed inSCROLL
expression 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:-1
as 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
noinfo
option to--preview-window
to 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-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
-
- If the default completion is not already set
-
- And if the current bash supports
complete -D
option
- 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_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 forkill
completion 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_COMMAND
FZF_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.gz
format instead ofzip
format 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-height
to 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
cd
instead ofbuiltin cd
builtin cd
was introduced to work around a bug ofcd
coming fromzoxide init --cmd cd fish
where it cannot handle--
argument.- However, the default
cd
of 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.