Skip to content

⬆️ Update dependency junegunn/fzf to v0.62.0 #10

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Jun 30, 2023

This PR contains the following updates:

Package Update Change
junegunn/fzf minor 0.39.0 -> v0.62.0

Release Notes

junegunn/fzf (junegunn/fzf)

v0.62.0: 0.62.0

Compare Source

  • Relaxed the --color option syntax to allow whitespace-separated entries (in addition to commas), making multi-line definitions easier to write and read

seoul256-light

fzf --style full --color='
fg:#​616161 fg+:#​616161
bg:#ffffff bg+:#e9e9e9 alt-bg:#f1f1f1
hl:#​719872 hl+:#​719899
pointer:#e12672 marker:#e17899
header:#​719872
spinner:#​719899 info:#​727100
prompt:#​0099bd query:#​616161
border:#e1e1e1
'

- Added `alt-bg` color to create striped lines to visually separate rows
```sh
fzf --color bg:237,alt-bg:238,current-bg:236 --highlight-line

declare -f | perl -0777 -pe 's/^}\n/}\0/gm' |
  bat --plain --language bash --color always |
  fzf --read0 --ansi --reverse --multi \
      --color bg:237,alt-bg:238,current-bg:236 --highlight-line
  • [fish] Improvements in CTRL-R binding (@​bitraid)
    • You can trigger CTRL-R in the middle of a command to insert the selected item
    • You can delete history items with SHIFT-DEL
  • Bug fixes and improvements
    • Fixed unnecessary 100ms delay after reload (#​4364)
    • Fixed selected-bg not applied to colored items (#​4372)

Screenshot

image

v0.61.3: 0.61.3

Compare Source

v0.61.2: 0.61.2

Compare Source

  • Fixed panic when using header border without pointer/marker (@​phanen)
  • Fixed --tmux option when already inside a tmux popup (@​peikk0)
  • Bug fixes and improvements in CTRL-T binding of fish (#​4334) (@​bitraid)
  • Added --no-tty-default option to make fzf search for the current TTY device instead of defaulting to /dev/tty (#​4242)

v0.61.1: 0.61.1

Compare Source

  • Disable bracketed-paste mode on exit. This fixes issue where pasting breaks after running fzf on old bash versions that don't support the mode.

v0.61.0: 0.61.0

Compare Source

  • Added --ghost=TEXT to display a ghost text when the input is empty

Display "Type to search" when the input is empty

fzf --ghost "Type to search"

- Added `change-ghost` and `transform-ghost` actions for dynamically changing the ghost text
- Added `change-pointer` and `transform-pointer` actions for dynamically changing the pointer sign
- Added `r` flag for placeholder expression (raw mode) for unquoted output
- Bug fixes and improvements

v0.60.3: 0.60.3

Compare Source

  • Bug fixes and improvements
    • [fish] Enable multiple history commands insertion (#​4280) (@​bitraid)
    • [walker] Append '/' to directory entries on MSYS2 (#​4281)
    • Trim trailing whitespaces after processing ANSI sequences (#​4282)
    • Remove temp files before become when using --tmux option (#​4283)
    • Fix condition for using item numlines cache (#​4285) (@​alex-huff)
    • Make --accept-nth compatible with --select-1 (#​4287)
    • Increase the query length limit from 300 to 1000 (#​4292)
    • [windows] Prevent fzf from consuming user input while paused (#​4260)

v0.60.2: 0.60.2

Compare Source

  • Template for --with-nth and --accept-nth now supports {n} which evaluates to the zero-based ordinal index of the item
  • Fixed a regression that caused the last field in the "nth" expression to be trimmed when a regular expression delimiter is used
  • Fixed 'jump' action when the pointer is an empty string

v0.60.1: 0.60.1

Compare Source

  • Bug fixes and minor improvements
    • Built-in walker now prints directory entries with a trailing slash
    • Fixed a bug causing unexpected behavior with fzf-tab. Please upgrade if you use it.
  • Thanks to @​alexeisersun, @​bitraid, @​Lompik, and @​fsc0 for the contributions

v0.60.0: 0.60.0

Compare Source

Release highlights: https://junegunn.github.io/fzf/releases/0.60.0/

  • Added --accept-nth for choosing output fields
    ps -ef | fzf --multi --header-lines 1 | awk '{print $2}'
Becomes

ps -ef | fzf --multi --header-lines 1 --accept-nth 2

git branch | fzf | cut -c3-

Can be rewritten as

git branch | fzf --accept-nth -1

- `--accept-nth` and `--with-nth` now support a template that includes multiple field index expressions in curly braces
```sh
echo foo,bar,baz | fzf --delimiter , --accept-nth '{1}, {3}, {2}'
##### foo, baz, bar

echo foo,bar,baz | fzf --delimiter , --with-nth '{1},{3},{2},{1..2}'
##### foo,baz,bar,foo,bar
  • Added exclude and exclude-multi actions for dynamically excluding items
    seq 100 | fzf --bind 'ctrl-x:exclude'
'exclude-multi' will exclude the selected items or the current item

seq 100 | fzf --multi --bind 'ctrl-x:exclude-multi'

- Preview window now prints wrap indicator when wrapping is enabled
```sh
seq 100 | xargs | fzf --wrap --preview 'echo {}' --preview-window wrap
  • Bug fixes and improvements

v0.59.0: 0.59.0

Compare Source

Release highlights: https://junegunn.github.io/fzf/releases/0.59.0/

  • Prioritizing file name matches (#​4192)
    • Added a new tiebreak option pathname for prioritizing file name matches
    • --scheme=path now sets --tiebreak=pathname,length
    • fzf will automatically choose path scheme
      • when the input is a TTY device, where fzf would start its built-in walker or run $FZF_DEFAULT_COMMAND which is usually a command for listing files,
      • but not when reload or transform action is bound to start event, because in that case, fzf can't be sure of the input type.
  • Added --header-lines-border to display header from --header-lines with a separate border

Use --header-lines-border to separate two headers

ps -ef | fzf --style full --layout reverse --header-lines 1
--bind 'ctrl-r:reload(ps -ef)' --header 'Press CTRL-R to reload'
--header-lines-border bottom --no-list-border

- `click-header` event now sets `$FZF_CLICK_HEADER_WORD` and `$FZF_CLICK_HEADER_NTH`. You can use them to implement a clickable header for changing the search scope using the new `transform-nth` action.
```sh
### Click on the header line to limit search scope
ps -ef | fzf --style full --layout reverse --header-lines 1 \
             --header-lines-border bottom --no-list-border \
             --color fg:dim,nth:regular \
             --bind 'click-header:transform-nth(
                       echo $FZF_CLICK_HEADER_NTH
                     )+transform-prompt(
                       echo "$FZF_CLICK_HEADER_WORD> "
                     )'
- `$FZF_KEY` was updated to expose the type of the click. e.g. `click`, `ctrl-click`, etc. You can use it to implement a more sophisticated behavior.
- `kill` completion for bash and zsh were updated to use this feature
  • Added --no-input option to completely disable and hide the input section

Click header to trigger search

fzf --header '[src] [test]' --no-input --layout reverse
--header-border bottom --input-border
--bind 'click-header:transform-search:echo ${FZF_CLICK_HEADER_WORD:1:-1}'

Vim-like mode switch

fzf --layout reverse-list --no-input
--bind 'j:down,k:up,/:show-input+unbind(j,k,/)'
--bind 'enter,esc,ctrl-c:transform:
if [[ $FZF_INPUT_STATE = enabled ]]; then
echo "rebind(j,k,/)+hide-input"
elif [[ $FZF_KEY = enter ]]; then
echo accept
else
echo abort
fi
'

  - You can later show the input section using `show-input` or `toggle-input` action, and hide it again using `hide-input`, or `toggle-input`.
- Extended `{q}` placeholder to support ranges. e.g. `{q:1}`, `{q:2..}`, etc.
- Added `search(...)` and `transform-search(...)` action to trigger an fzf search with an arbitrary query string. This can be used to extend the search syntax of fzf. In the following example, fzf will use the first word of the query to trigger ripgrep search, and use the rest of the query to perform fzf search within the result.
```sh
export TEMP=$(mktemp -u)
trap 'rm -f "$TEMP"' EXIT

TRANSFORMER='
  rg_pat={q:1}      # The first word is passed to ripgrep
  fzf_pat={q:2..}   # The rest are passed to fzf

  if ! [[ -r "$TEMP" ]] || [[ $rg_pat != $(cat "$TEMP") ]]; then
    echo "$rg_pat" > "$TEMP"
    printf "reload:sleep 0.1; rg --column --line-number --no-heading --color=always --smart-case %q || true" "$rg_pat"
  fi
  echo "+search:$fzf_pat"
'
fzf --ansi --disabled \
  --with-shell 'bash -c' \
  --bind "start,change:transform:$TRANSFORMER"
  • You can now bind actions to multiple keys and events at once by writing a comma-separated list of keys and events before the colon

Load 'ps -ef' output on start and reload it on CTRL-R

fzf --bind 'start,ctrl-r:reload:ps -ef'

- `--min-height` option now takes a number followed by `+`, which tells fzf to show at least that many items in the list section. The default value is now changed to `10+`.
```sh
### You will only see the input section which takes 3 lines
fzf --style=full --height 1% --min-height 3
### You will see 3 items in the list section
fzf --style full --height 1% --min-height 3+
- Shell integration scripts were updated to use `--min-height 20+` by default
  • --header-lines will be displayed at the top in reverse-list layout
  • Added bell action to ring the terminal bell

Press CTRL-Y to copy the current line to the clipboard and ring the bell

fzf --bind 'ctrl-y:execute-silent(echo -n {} | pbcopy)+bell'

- Added `toggle-bind` action
- Bug fixes and improvements
- Fixed fish script to support fish 3.1.2 or later (@​bitraid)

v0.58.0: 0.58.0

Compare Source

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
  • 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
  • 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
  • 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

![](https://redirect.github.com/user-attachments/assets/203bf377-28da-4abf-a19c-d456ab1a72bb)
- You can customize the line using `--gap-line[=STR]`.
- 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.
```sh
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
```sh
##### 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 '\|'
  • Bug fixes
  • Bug fixes and improvements in fish scripts (thanks to @​bitraid)

v0.57.0: 0.57.0

Compare Source

  • 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

v0.56.3: 0.56.3

Compare Source

  • Bug fixes in zsh scripts
    • fix(zsh): handle backtick trigger edge case (#​4090)
    • revert(zsh): remove 'fc -RI' call in the history widget (#​4093)
    • Thanks to @​LangLangBart for the contributions

v0.56.2: 0.56.2

Compare Source

  • Bug fixes
    • Fixed abnormal scrolling behavior when --wrap is set (#​4083)
    • [zsh] Fixed warning message when ksh_arrays is set (#​4084)

v0.56.1: 0.56.1

Compare Source

  • Bug fixes and improvements
    • Fixed a race condition which would cause fzf to present stale results after reload (#​4070)
    • page-up and page-down actions now work correctly with multi-line items (#​4069)
    • {n} is allowed in SCROLL expression in --preview-window (#​4079)
    • [zsh] Fixed regression in history loading with shared option (#​4071)
    • [zsh] Better command extraction in zsh completion (#​4082)
  • Thanks to @​LangLangBart, @​jaydee-coder, @​alex-huff, and @​vejkse for the contributions

v0.56.0: 0.56.0

Compare Source

  • 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
  ```
  <img width="855" alt="image" src="https://github.com/user-attachments/assets/b3d2eaf2-bf44-4e3a-8d7b-9878629dd9be">
- 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.
  ```sh
  fzf --info inline-right --gap --color gutter:-1
  ```
  <img width="855" alt="image" src="https://github.com/user-attachments/assets/113757a1-ccfd-42a6-b946-83533f408e69">

v0.55.0: 0.55.0

Compare Source

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
      1. If the default completion is not already set
      1. And if the current bash supports complete -D option
    • 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
```sh
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 for kill completion on Cygwin

v0.54.3: 0.54.3

Compare Source

  • 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`
```sh
FZF_DEFAULT_COMMAND='echo $FZF_QUERY' fzf --query foo

v0.54.2: 0.54.2

Compare Source

  • 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 of zip format since we no longer notarize the zip files but binaries
  • (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).

v0.54.1: 0.54.1

Compare Source

v0.54.0: 0.54.0

Compare Source

Release highlights: https://junegunn.github.io/fzf/releases/0.54.0/

  • Implemented line wrap of long items
    • --wrap option enables line wrap
    • --wrap-sign customizes the sign for wrapped lines (default: )
    • toggle-wrap action toggles line wrap
      history | fzf --tac --wrap --bind 'ctrl-/:toggle-wrap' --wrap-sign $'\t'
    • fzf by default binds CTRL-/ and ALT-/ to toggle-wrap
  • Updated shell integration scripts to leverage line wrap
    • CTRL-R binding includes --wrap-sign $'\t↳ ' to indent wrapped lines
    • kill ** completion uses --wrap to show the whole line by default instead of showing it in the preview window
  • Added --info-command option 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_INFO` is set to the original info text
  - ANSI color codes are supported
- Pointer and marker signs can be set to empty strings
```sh
### Minimal style
fzf --pointer '' --marker '' --prompt '' --info hidden
  • Better cache management and improved rendering for --tail
  • Improved --sync behavior
    • When --sync is provided, fzf will not render the interface until the initial filtering and the associated actions (bound to any of start, load, result, or focus) 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
  ```
  • GET endpoint is now available from execute and transform actions (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-middle action to place the current item is in the middle of the screen
  • fzf will not start the initial reader when reload or reload-sync is bound to start event. fzf < /dev/null or : | fzf are no longer required and extraneous load event 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=end` with very long items
- zsh 5.0 compatibility (thanks to @&#8203;LangLangBart)
- Fixed `--walker-skip` to also skip symlinks to directories
- Fixed `result` event 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 @&#8203;charlievieth)
- New tags will have `v` prefix so that they are available on https://proxy.golang.org/

v0.53.0

Compare Source

Release highlights: https://junegunn.github.io/fzf/releases/0.53.0/

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`
- CTRL-R bindings of bash, zsh, and fish have been updated to leverage multi-line display
- The default `--pointer` and `--marker` have been changed from `>` to Unicode bar characters as they look better with multi-line items
- Added `--marker-multi-line` to customize the select marker for multi-line entries with the default set to `╻┃╹`
  ```
  ╻First line
  ┃...
  ╹Last line
  ```
  • Native tmux integration
    • Added --tmux option 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 `--tmux` in Vim plugin:
  ```vim
  let g:fzf_layout = { 'tmux': '100%,70%' }
  ```
  • Added support for endless input streams
    • See Browsing log stream with fzf
    • Added --tail=NUM option 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 --man to see it
  • Changed the default --scroll-off to 3, as we think it's a better default
  • Process started by execute action now directly writes to and reads from /dev/tty. Manual /dev/tty redirection for interactive programs is no longer required.

v0.52.1

Compare Source

  • Fixed a critical bug in the Windows version
    • Windows users are strongly encouraged to upgrade to this version

v0.52.0

Compare Source

  • Added --highlight-line to highlight the whole current line (à la set cursorline of Vim)
  • Added color names for selected lines: selected-fg, selected-bg, and selected-hl
    fzf --border --multi --info inline-right --layout reverse --marker ▏ --pointer ▌ --prompt ''  \
        --highlight-line --color gutter:-1,selected-bg:238,selected-fg:146,current-fg:189
  • Added click-header event that is triggered when the header section is clicked. When the event is triggered, $FZF_CLICK_HEADER_COLUMN and $FZF_CLICK_HEADER_LINE are set.
    fd --type f |
      fzf --header $'[Files] [Directories]' --header-first \
          --bind 'click-header:transform:
            (( FZF_CLICK_HEADER_COLUMN <= 7 )) && echo "reload(fd --type f)"
            (( FZF_CLICK_HEADER_COLUMN >= 9 )) && echo "reload(fd --type d)"
          '
  • Add $FZF_COMPLETION_{DIR,PATH}_OPTS for separately customizing the behavior of fuzzy completion

v0.51.0

Compare Source

  • Added a new environment variable $FZF_POS exported to the child processes. It's the vertical position of the cursor in the list starting from 1.

v0.50.0

Compare Source

  • Search performance optimization. You can observe 50%+ improvement in some scenarios.
    $ rg --line-number --no-heading --smart-case . > $DATA

    $ wc < $DATA
     5520118 26862362 897487793
    
    $ hyperfine -w 1 -L bin fzf-0.49.0,fzf-7ce6452,fzf-a5447b8,fzf '{bin} --filter "///" < $DATA | head -30'
    Summary
      fzf --filter "///" < $DATA | head -30 ran
        1.16 ± 0.03 times faster than fzf-a5447b8 --filter "///" < $DATA | head -30
        1.23 ± 0.03 times faster than fzf-7ce6452 --filter "///" < $DATA | head -30
        1.52 ± 0.03 times faster than fzf-0.49.0 --filter "///" < $DATA | head -30
    
  • Added jump and jump-cancel events that are triggered when leaving jump mode

v0.49.0

Compare Source

  • Ingestion performance improved by around 40% (more or less depending on options)
  • --info=hidden and --info=inline-right will no longer hide the horizontal separator by default. This gives you more flexibility in customizing the layout.
    fzf --border --info=inline-right
    fzf --border --info=inline-right --separator ═
    fzf --border --info=inline-right --no-separator
    fzf --border --info=hidden
    fzf --border --info=hidden --separator ━
    fzf --border --info=hidden --no-separator
  • Added two environment variables exported to the child processes
    • FZF_PREVIEW_LABEL
    • FZF_BORDER_LABEL

Use the current value of $FZF_PREVIEW_LABEL to determine which actions to perform

git ls-files |
  fzf --header 'Press CTRL-P to change preview mode' \
      --bind='ctrl-p:transform:[[ $FZF_PREVIEW_LABEL =~ cat ]] \
      && echo "change-preview(git log --color=always \{})+change-preview-label([[ log ]])" \
      || echo "change-preview(bat --color=always \{})+change-preview-label([[ cat ]])"'
```
  • Renamed track action to track-current to highlight the difference between the global tracking state set by --track and a one-off tracking action
    • track is still available as an alias
  • Added untrack-current and toggle-track-current actions
    • *-current actions are no-op when the global tracking state is set
  • Bug fixes and minor improvements

v0.48.1

Compare Source

  • CTRL-T and ALT-C bindings can be disabled by setting FZF_CTRL_T_COMMAND and FZF_ALT_C_COMMAND to empty strings respectively when sourcing the script

bash

FZF_CTRL_T_COMMAND= FZF_ALT_C_COMMAND= eval "$(fzf --bash)"

zsh

FZF_CTRL_T_COMMAND= FZF_ALT_C_COMMAND= eval "$(fzf --zsh)"

fish

fzf --fish | FZF_CTRL_T_COMMAND= FZF_ALT_C_COMMAND= source
```
- Setting the variables after sourcing the script will have no effect
  • Bug fixes

v0.48.0

Compare Source

  • Shell integration scripts are now embedded in the fzf binary. This simplifies the distribution, and the users are less likely to have problems caused by using incompatible scripts and binaries.
    • bash

Set up fzf key bindings and fuzzy completion

  eval "$(fzf --bash)"
  ```
- zsh
  ```sh

Set up fzf key bindings and fuzzy completion

  eval "$(fzf --zsh)"
  ```
- fish
  ```fish

Set up fzf key bindings

  fzf --fish | source
  ```
  • Added options for customizing the behavior of the built-in walker
    Option Description Default
    --walker=OPTS Walker options ([file][,dir][,follow][,hidden]) file,follow,hidden
    --walker-root=DIR Root directory from which to start walker .
    --walker-skip=DIRS Comma-separated list of directory names to skip .git,node_modules
    • Examples

Built-in walker is only used by standalone fzf when $FZF_DEFAULT_COMMAND is not set

    unset FZF_DEFAULT_COMMAND

    fzf # default: --walker=file,follow,hidden --walker-root=. --walker-skip=.git,node_modules
    fzf --walker=file,dir,hidden,follow --walker-skip=.git,node_modules,target

Walker options in $FZF_DEFAULT_OPTS

    export FZF_DEFAULT_OPTS="--walker=file,dir,hidden,follow --walker-skip=.git,node_modules,target"
    fzf

Reading from STDIN; --walker is ignored

    seq 100 | fzf --walker=dir

Reading from $FZF_DEFAULT_COMMAND; --walker is ignored

    export FZF_DEFAULT_COMMAND='seq 100'
    fzf --walker=dir
    ```
  • Shell integration scripts have been updated to use the built-in walker with these new options and they are now much faster out of the box.

v0.47.0

Compare Source

  • Replaced "the default find command" with a built-in directory walker to simplify the code and to achieve better performance and consistent behavior across platforms.
    This doesn't affect you if you have $FZF_DEFAULT_COMMAND set.
    • Breaking changes:
      • Unlike the previous "find" command, the new traversal code will list hidden files, but hidden directories will still be ignored
      • No filtering of devtmpfs or proc types
      • Traversal is parallelized, so the order of the entries will be different each time
    • You may wonder why fzf implements directory walker anyway when it's a filter program following the Unix philosophy.
      But fzf has had the walker code for years to tackle the performance problem on Windows. And I decided to use the same approach on different platforms as well for the benefits listed above.
    • Built-in walker is using the excellent charlievieth/fastwalk library, which easily outperforms its competitors and supports safely following symlinks.
  • Added $FZF_DEFAULT_OPTS_FILE to allow managing default options in a file
    • See #​3618
    • Option precedence from lower to higher
      1. Options read from $FZF_DEFAULT_OPTS_FILE
      2. Options from $FZF_DEFAULT_OPTS
      3. Options from command-line arguments
  • Bug fixes and improvements

v0.46.1

Compare Source

v0.46.0

Compare Source

  • Added two new events
    • result - triggered when the filtering for the current query is complete and the result list is ready
    • resize - triggered when the terminal size is changed
  • fzf now exports the following environment variables to the child processes
    Variable Description
    FZF_LINES Number of lines fzf takes up excluding padding and margin
    FZF_COLUMNS Number of columns fzf takes up excluding padding and margin
    FZF_TOTAL_COUNT Total number of items
    FZF_MATCH_COUNT Number of matched items
    FZF_SELECT_COUNT Number of selected items
    FZF_QUERY Current query string
    FZF_PROMPT Prompt string
    FZF_ACTION The name of the last action performed
    • This allows you to write sophisticated transformations like so

Script to dynamically resize the preview window

transformer='

1 line for info, another for prompt, and 2 more lines for preview window border

  lines=$(( FZF_LINES - FZF_MATCH_COUNT - 4 ))
  if [[ $FZF_MATCH_COUNT -eq 0 ]]; then
    echo "change-preview-window:hidden"
  elif [[ $lines -gt 3 ]]; then
    echo "change-preview-window:$lines"
  elif [[ $FZF_PREVIEW_LINES -ne 3 ]]; then
    echo "change-preview-window:3"
  fi
'
seq 10000 | fzf --preview 'seq {} 10000' --preview-window up \
                --bind "result:transform:$transformer" \
                --bind "resize:transform:$transformer"
```
  • And we're phasing out {fzf:prompt} and {fzf:action}
  • Changed mattn/go-runewidth dependency to rivo/uniseg for accurate results
    • Set --ambidouble if your terminal displays ambiguous width characters (e.g. box-drawing characters for borders) as 2 columns
    • RUNEWIDTH_EASTASIAN=1 is still respected for backward compatibility, but it's recommended that you use this new option instead
  • Bug fixes

v0.45.0

Compare Source

  • Added transform action to conditionally perform a series of actions

v0.44.1

Compare Source

  • Fixed crash when preview window is hidden on focus event

v0.44.0

Compare Source

  • (Experimental) Sixel image support in preview window (not available on Windows)
    • bin/fzf-preview.sh is added to demonstrate how to
      display an image using Kitty image protocol or Sixel. You can use it
      like so:
      fzf --preview='fzf-preview.sh {}'
  • (Experimental) iTerm2 inline image protocol support in preview window (not available on Windows)

v0.43.0

Compare Source

  • (Experimental) Added support for Kitty image protocol in the preview window
    (not available on Windows)
    fzf --preview='
      if file --mime-type {} | grep -qF image/; then

--transfer-mode=memory is the fastest option but if you want fzf to be able

to redraw the image on terminal resize or on 'change-preview-window',

you need to use --transfer-mode=stream.

  kitty icat --clear --transfer-mode=memory --unicode-placeholder --stdin=no --place=${FZF_PREVIEW_COLUMNS}x${FZF_PREVIEW_LINES}@&#8203;0x0 {} | sed \$d
else
  bat --color=always {}
fi

'

- (Experimental) `--listen` server can report program state in JSON format (`GET /`)
```sh

v0.42.0

Compare Source

  • Added new info style: --info=right
  • Added new info style: --info=inline-right
  • Added new border style thinblock which uses symbols for legacy computing
    one eighth block elements
    • Similarly to block, this style is suitable when using a different
      background color because the window is completely contained within the border.
      BAT_THEME=GitHub fzf --info=right --border=thinblock --preview-window=border-thinblock \
          --margin=3 --scrollbar=▏▕ --preview='bat --color=always --style=numbers {}' \
          --color=light,query:238,fg:238,bg:251,bg+:249,gutter:251,border:248,preview-bg:253
    • This style may not render correctly depending on the font and the
      terminal emulator.

v0.41.1

Compare Source

  • Fixed a bug where preview window is not updated when --disabled is set and
    a reload is triggered by change:reload binding

v0.41.0

Compare Source

  • Added color name preview-border and preview-scrollbar
  • Added new border style block which uses block elements
  • --scrollbar can take two characters, one for the main window, the other
    for the preview window
  • Putting it altogether:
    fzf-tmux -p 80% --padding 1,2 --preview 'bat --style=plain --color=always {}' \
        --color 'bg:237,bg+:235,gutter:237,border:238,scrollbar:236' \
        --color 'preview-bg:235,preview-border:236,preview-scrollbar:234' \
        --preview-window 'border-block' --border block --scrollbar '▌▐'
  • Bug fixes and improvements

v0.40.0

Compare Source

  • Added zero event that is triggered when there's no match

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot force-pushed the renovate/junegunn-fzf-0.x branch from 53a97fe to 1396b5c Compare August 4, 2023 17:05
@renovate renovate bot force-pushed the renovate/junegunn-fzf-0.x branch from 1396b5c to 2dc1e48 Compare October 14, 2023 19:43
@renovate renovate bot changed the title ⬆️ Update dependency junegunn/fzf to v0.42.0 ⬆️ Update dependency junegunn/fzf to v0.43.0 Oct 14, 2023
@renovate renovate bot force-pushed the renovate/junegunn-fzf-0.x branch from 2dc1e48 to adc0111 Compare November 12, 2023 16:54
@renovate renovate bot changed the title ⬆️ Update dependency junegunn/fzf to v0.43.0 ⬆️ Update dependency junegunn/fzf to v0.44.0 Nov 12, 2023
@renovate renovate bot changed the title ⬆️ Update dependency junegunn/fzf to v0.44.0 ⬆️ Update dependency junegunn/fzf to v0.44.1 Nov 17, 2023
@renovate renovate bot force-pushed the renovate/junegunn-fzf-0.x branch from adc0111 to 8b67da7 Compare November 17, 2023 14:04
@renovate renovate bot force-pushed the renovate/junegunn-fzf-0.x branch from 8b67da7 to 4a07b07 Compare January 1, 2024 10:08
@renovate renovate bot changed the title ⬆️ Update dependency junegunn/fzf to v0.44.1 ⬆️ Update dependency junegunn/fzf to v0.45.0 Jan 1, 2024
@renovate renovate bot force-pushed the renovate/junegunn-fzf-0.x branch from 4a07b07 to 3138709 Compare January 23, 2024 17:01
@renovate renovate bot changed the title ⬆️ Update dependency junegunn/fzf to v0.45.0 ⬆️ Update dependency junegunn/fzf to v0.46.0 Jan 23, 2024
@renovate renovate bot force-pushed the renovate/junegunn-fzf-0.x branch from 3138709 to eaf712a Compare February 1, 2024 11:06
@renovate renovate bot changed the title ⬆️ Update dependency junegunn/fzf to v0.46.0 ⬆️ Update dependency junegunn/fzf to v0.46.1 Feb 1, 2024
@renovate renovate bot force-pushed the renovate/junegunn-fzf-0.x branch from eaf712a to 51892cb Compare March 10, 2024 14:02
@renovate renovate bot changed the title ⬆️ Update dependency junegunn/fzf to v0.46.1 ⬆️ Update dependency junegunn/fzf to v0.47.0 Mar 10, 2024
@renovate renovate bot force-pushed the renovate/junegunn-fzf-0.x branch from 51892cb to a321879 Compare March 13, 2024 18:05
@renovate renovate bot changed the title ⬆️ Update dependency junegunn/fzf to v0.47.0 ⬆️ Update dependency junegunn/fzf to v0.48.0 Mar 13, 2024
@renovate renovate bot force-pushed the renovate/junegunn-fzf-0.x branch from a321879 to 2a90629 Compare March 17, 2024 08:05
@renovate renovate bot changed the title ⬆️ Update dependency junegunn/fzf to v0.48.0 ⬆️ Update dependency junegunn/fzf to v0.48.1 Mar 17, 2024
@renovate renovate bot force-pushed the renovate/junegunn-fzf-0.x branch from 2a90629 to dc6ce74 Compare April 4, 2024 15:46
@renovate renovate bot changed the title ⬆️ Update dependency junegunn/fzf to v0.48.1 ⬆️ Update dependency junegunn/fzf to v0.49.0 Apr 4, 2024
@renovate renovate bot force-pushed the renovate/junegunn-fzf-0.x branch from dc6ce74 to a6cfee9 Compare April 14, 2024 17:13
@renovate renovate bot changed the title ⬆️ Update dependency junegunn/fzf to v0.49.0 ⬆️ Update dependency junegunn/fzf to v0.50.0 Apr 14, 2024
@renovate renovate bot force-pushed the renovate/junegunn-fzf-0.x branch from a6cfee9 to 635e31f Compare May 1, 2024 07:30
@renovate renovate bot changed the title ⬆️ Update dependency junegunn/fzf to v0.50.0 ⬆️ Update dependency junegunn/fzf to v0.51.0 May 1, 2024
@renovate renovate bot force-pushed the renovate/junegunn-fzf-0.x branch from 635e31f to b32b924 Compare May 7, 2024 16:29
@renovate renovate bot changed the title ⬆️ Update dependency junegunn/fzf to v0.51.0 ⬆️ Update dependency junegunn/fzf to v0.52.0 May 7, 2024
@renovate renovate bot force-pushed the renovate/junegunn-fzf-0.x branch from b32b924 to 625d302 Compare May 13, 2024 19:33
@renovate renovate bot changed the title ⬆️ Update dependency junegunn/fzf to v0.52.0 ⬆️ Update dependency junegunn/fzf to v0.52.1 May 13, 2024
@renovate renovate bot force-pushed the renovate/junegunn-fzf-0.x branch from 625d302 to 76a0f09 Compare June 6, 2024 16:40
@renovate renovate bot changed the title ⬆️ Update dependency junegunn/fzf to v0.56.0 ⬆️ Update dependency junegunn/fzf to v0.56.1 Nov 10, 2024
@renovate renovate bot changed the title ⬆️ Update dependency junegunn/fzf to v0.56.1 ⬆️ Update dependency junegunn/fzf to v0.56.2 Nov 11, 2024
@renovate renovate bot force-pushed the renovate/junegunn-fzf-0.x branch 2 times, most recently from d74d02a to ff1da1d Compare November 15, 2024 04:14
@renovate renovate bot changed the title ⬆️ Update dependency junegunn/fzf to v0.56.2 ⬆️ Update dependency junegunn/fzf to v0.56.3 Nov 15, 2024
@renovate renovate bot force-pushed the renovate/junegunn-fzf-0.x branch from ff1da1d to da356fe Compare December 15, 2024 09:48
@renovate renovate bot changed the title ⬆️ Update dependency junegunn/fzf to v0.56.3 ⬆️ Update dependency junegunn/fzf to v0.57.0 Dec 15, 2024
@renovate renovate bot force-pushed the renovate/junegunn-fzf-0.x branch from da356fe to 1610c6f Compare January 19, 2025 17:40
@renovate renovate bot changed the title ⬆️ Update dependency junegunn/fzf to v0.57.0 ⬆️ Update dependency junegunn/fzf to v0.58.0 Jan 19, 2025
@renovate renovate bot force-pushed the renovate/junegunn-fzf-0.x branch from 1610c6f to dd565ed Compare February 2, 2025 17:15
@renovate renovate bot changed the title ⬆️ Update dependency junegunn/fzf to v0.58.0 ⬆️ Update dependency junegunn/fzf to v0.59.0 Feb 2, 2025
@renovate renovate bot force-pushed the renovate/junegunn-fzf-0.x branch from dd565ed to edcd21f Compare February 12, 2025 19:40
@renovate renovate bot changed the title ⬆️ Update dependency junegunn/fzf to v0.59.0 ⬆️ Update dependency junegunn/fzf to v0.60.0 Feb 12, 2025
@renovate renovate bot force-pushed the renovate/junegunn-fzf-0.x branch from edcd21f to de59211 Compare February 20, 2025 14:12
@renovate renovate bot changed the title ⬆️ Update dependency junegunn/fzf to v0.60.0 ⬆️ Update dependency junegunn/fzf to v0.60.1 Feb 20, 2025
@renovate renovate bot force-pushed the renovate/junegunn-fzf-0.x branch from de59211 to 83d240c Compare February 23, 2025 14:03
@renovate renovate bot changed the title ⬆️ Update dependency junegunn/fzf to v0.60.1 ⬆️ Update dependency junegunn/fzf to v0.60.2 Feb 23, 2025
@renovate renovate bot force-pushed the renovate/junegunn-fzf-0.x branch from 83d240c to 1fdb883 Compare March 3, 2025 11:27
@renovate renovate bot changed the title ⬆️ Update dependency junegunn/fzf to v0.60.2 ⬆️ Update dependency junegunn/fzf to v0.60.3 Mar 3, 2025
@renovate renovate bot force-pushed the renovate/junegunn-fzf-0.x branch from 1fdb883 to 45d8447 Compare March 30, 2025 13:37
@renovate renovate bot changed the title ⬆️ Update dependency junegunn/fzf to v0.60.3 ⬆️ Update dependency junegunn/fzf to v0.61.0 Mar 30, 2025
@renovate renovate bot force-pushed the renovate/junegunn-fzf-0.x branch from 45d8447 to 15823ad Compare April 6, 2025 06:27
@renovate renovate bot changed the title ⬆️ Update dependency junegunn/fzf to v0.61.0 ⬆️ Update dependency junegunn/fzf to v0.61.1 Apr 6, 2025
@renovate renovate bot force-pushed the renovate/junegunn-fzf-0.x branch from 15823ad to 0c059d5 Compare April 20, 2025 06:34
@renovate renovate bot changed the title ⬆️ Update dependency junegunn/fzf to v0.61.1 ⬆️ Update dependency junegunn/fzf to v0.61.2 Apr 20, 2025
@renovate renovate bot force-pushed the renovate/junegunn-fzf-0.x branch from 0c059d5 to e92f1c2 Compare April 22, 2025 16:42
@renovate renovate bot changed the title ⬆️ Update dependency junegunn/fzf to v0.61.2 ⬆️ Update dependency junegunn/fzf to v0.61.3 Apr 22, 2025
@renovate renovate bot force-pushed the renovate/junegunn-fzf-0.x branch from e92f1c2 to 6ddde34 Compare May 4, 2025 14:43
@renovate renovate bot changed the title ⬆️ Update dependency junegunn/fzf to v0.61.3 ⬆️ Update dependency junegunn/fzf to v0.62.0 May 4, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants