All Versions
97
Latest Version
Avg Release Cycle
76 days
Latest Release
-

Changelog History
Page 1

  • v0.35.0 Changes

    • ➕ Added start event that is triggered only once when fzf finder starts. Since fzf consumes the input stream asynchronously, the input list is not available unless you use --sync. sh seq 100 | fzf --multi --sync --bind 'start:last+select-all+preview(echo welcome)'
    • ➕ Added --border-label and --border-label-pos for putting label on the border ```sh # ANSI color codes are supported # (with https://github.com/busyloop/lolcat) label=$(curl -s http://metaphorpsum.com/sentences/1 | lolcat -f)

    # Border label at the center fzf --height=10 --border --border-label="╢ $label ╟" --color=label:italic:black

    # Left-aligned (positive integer) fzf --height=10 --border --border-label="╢ $label ╟" --border-label-pos=3 --color=label:italic:black

    # Right-aligned (negative integer) on the bottom line (:bottom) fzf --height=10 --border --border-label="╢ $label ╟" --border-label-pos=-3:bottom --color=label:italic:black

    - Also added `--preview-label` and `--preview-label-pos` for the border of the
      preview window
      ```sh
      fzf --preview 'cat {}' --border --preview-label=' Preview ' --preview-label-pos=2
    
    • 0️⃣ Info panel (counter) will be followed by a horizontal separator by default
      • The color of the separator can be customized via --color=separator:...
      • Separator can be disabled by adding :nosep to --info
        • --info=nosep
        • --info=inline:nosep
  • v0.34.0 Changes

    • ➕ Added support for adaptive --height. If the --height value is prefixed with ~, fzf will automatically determine the height in the range according to the input size.

      seq 1 | fzf --height ~70% --border --padding 1 --margin 1
      seq 10 | fzf --height ~70% --border --padding 1 --margin 1
      seq 100 | fzf --height ~70% --border --padding 1 --margin 1
      
      • There are a few limitations

        • Not compatible with percent top/bottom margin/padding ```sh # This is not allowed (top/bottom margin in percent value) fzf --height ~50% --border --margin 5%,10%

        # This is allowed (top/bottom margin in fixed value) fzf --height ~50% --border --margin 2,10%

        - fzf will not start until it can determine the right height for the input
          ```sh
          # fzf will open immediately
          (sleep 2; seq 10) | fzf --height 50%
        
          # fzf will open after 2 seconds
          (sleep 2; seq 10) | fzf --height ~50%
          (sleep 2; seq 1000) | fzf --height ~50%
        
    • 🛠 Fixed tcell renderer used to render full-screen fzf on Windows

    • 🗄 --no-clear is deprecated. Use reload action instead.

  • v0.33.0 Changes

    • ➕ Added --scheme=[default|path|history] option to choose scoring scheme
      • (Experimental)
      • We updated the scoring algorithm in 0.32.0, however we have learned that this new scheme (default) is not always giving the optimal result
      • path: Additional bonus point is only given to the characters after path separator. You might want to choose this scheme if you have many files with spaces in their paths.
      • history: No additional bonus points are given so that we give more weight to the chronological ordering. This is equivalent to the scoring scheme before 0.32.0. This also sets --tiebreak=index.
    • 👍 ANSI color sequences with colon delimiters are now supported. sh printf "\e[38;5;208mOption 1\e[m\nOption 2" | fzf --ansi printf "\e[38:5:208mOption 1\e[m\nOption 2" | fzf --ansi
    • 👌 Support border-{up,down} as the synonyms for border-{top,bottom} in --preview-window
    • ➕ Added support for ANSI strikethrough sh printf "\e[9mdeleted" | fzf --ansi fzf --color fg+:strikethrough
  • v0.32.1 Changes

    • 🛠 Fixed incorrect ordering of --tiebreak=chunk
    • fzf-tmux will show fzf border instead of tmux popup border (requires tmux 3.3) ```sh fzf-tmux -p70% fzf-tmux -p70% --color=border:bright-red fzf-tmux -p100%,60% --color=border:bright-yellow --border=horizontal --padding 1,5 --margin 1,0 fzf-tmux -p70%,100% --color=border:bright-green --border=vertical

    # Key bindings (CTRL-T, CTRL-R, ALT-C) will use these options export FZF_TMUX_OPTS='-p100%,60% --color=border:green --border=horizontal --padding 1,5 --margin 1,0'

  • v0.32.0 Changes

    • ⚡️ Updated the scoring algorithm
      • Different bonus points to different categories of word boundaries (listed higher to lower bonus point)
        • Word after whitespace characters or beginning of the string
        • Word after common delimiter characters (/,:;|)
        • Word after other non-word characters sh # foo/bar.sh` is preferred over `foo-bar.sh` on `bar` fzf --query=bar --height=4 << EOF foo-bar.sh foo/bar.sh EOF
    • ➕ Added a new tiebreak chunk
      • Favors the line with shorter matched chunk. A chunk is a set of consecutive non-whitespace characters.
      • Unlike the default length, this scheme works well with tabular input sh # length prefers item #1, because the whole line is shorter, # chunk prefers item #2, because the matched chunk ("foo") is shorter fzf --height=6 --header-lines=2 --tiebreak=chunk --reverse --query=fo << "EOF" N | Field1 | Field2 | Field3 - | ------ | ------ | ------ 1 | hello | foobar | baz 2 | world | foo | bazbaz EOF
      • If the input does not contain any spaces, chunk is equivalent to length. But we're not going to set it as the default because it is computationally more expensive.
    • 🐛 Bug fixes and improvements
  • v0.31.0 Changes

    • ➕ Added support for an alternative preview window layout that is activated when the size of the preview window is smaller than a certain threshold. ```sh # If the width of the preview window is smaller than 50 columns, # it will be displayed above the search window. fzf --preview 'cat {}' --preview-window 'right,50%,border-left,<50(up,30%,border-bottom)'

    # Or you can just hide it like so fzf --preview 'cat {}' --preview-window '<50(hidden)'

    - 👍 fzf now uses SGR mouse mode to properly support mouse on larger terminals
    - You can now use characters that do not satisfy `unicode.IsGraphic` constraint
      for `--marker`, `--pointer`, and `--ellipsis`. Allows Nerd Fonts and stuff.
      Use at your own risk.
    - 🐛 Bug fixes and improvements
    - Shell extension
        - `kill` completion now requires trigger sequence (`**`) for consistency
    
  • v0.30.0 Changes

    • 🛠 Fixed cursor flickering over the screen by hiding it during rendering
    • ➕ Added --ellipsis option. You can take advantage of it to make fzf effectively search non-visible parts of the item. sh # Search against hidden line numbers on the far right nl /usr/share/dict/words | awk '{printf "%s%1000s\n", $2, $1}' | fzf --nth=-1 --no-hscroll --ellipsis='' | awk '{print $2}'
    • ➕ Added rebind action for restoring bindings after unbind
    • 🐛 Bug fixes and improvements
  • v0.29.0 Changes

    • ➕ Added change-preview(...) action to change the --preview command
      • cf. preview(...) is a one-off action that doesn't change the default preview command
    • ➕ Added change-preview-window(...) action
      • You can rotate through the different options separated by | sh fzf --preview 'cat {}' --preview-window right:40% \ --bind 'ctrl-/:change-preview-window(right,70%|down,40%,border-top|hidden|)'
    • 🛠 Fixed rendering of the prompt line when overflow occurs with --info=inline
  • v0.28.0 Changes

    • ➕ Added --header-first option to print header before the prompt line sh fzf --header $'Welcome to fzf\n▔▔▔▔▔▔▔▔▔▔▔▔▔▔' --reverse --height 30% --border --header-first
    • ➕ Added --scroll-off=LINES option (similar to scrolloff option of Vim)
      • You can set it to a very large number so that the cursor stays in the middle of the screen while scrolling sh fzf --scroll-off=5 fzf --scroll-off=999
    • 🛠 Fixed bug where preview window is not updated on reload (#2644)
    • 🏁 fzf on Windows will also use $SHELL to execute external programs
      • See #2638 and #2647
      • Thanks to @rashil2000, @vovcacik, and @janlazo
  • v0.27.3 Changes

    • 0️⃣ Preview window is hidden by default when there are preview bindings but --preview command is not given
    • 🛠 Fixed bug where {n} is not properly reset on reload
    • 🛠 Fixed bug where spinner is not displayed on reload
    • ✨ Enhancements in tcell renderer for Windows (#2616)
    • 🔌 Vim plugin

      • sinklist is added as a synonym to sink* so that it's easier to add a function to a spec dictionary ```vim let spec = { 'source': 'ls', 'options': ['--multi', '--preview', 'cat {}'] } function spec.sinklist(matches) echom string(a:matches) endfunction

      call fzf#run(fzf#wrap(spec))

      - Vim 7 compatibility