Skip to content

0.54.0

Compare
Choose a tag to compare
@junegunn junegunn released this 08 Jul 13:54
· 106 commits to master since this release
v0.54.0
9e92b6f

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
    # 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 @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 @charlievieth)
  • New tags will have v prefix so that they are available on https://proxy.golang.org/