./sysutils/fzf, Command-line fuzzy finder

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 0.48.1nb1, Package name: fzf-0.48.1nb1, Maintainer: pkgsrc-users

fzf is a general-purpose command-line fuzzy finder. It's an
interactive Unix filter for command-line that can be used with any
list; files, command history, processes, hostnames, bookmarks, git
commits, etc.


Required to run:
[shells/bash]

Required to build:
[pkgtools/cwrappers] [security/go-crypto] [textproc/go-runewidth] [devel/go-sys] [devel/go-isatty] [devel/go-shellwords] [lang/go114]

Master sites:

Filesize: 256.673 KB

Version history: (Expand)


CVS history: (Expand)


   2024-04-05 21:14:14 by Benny Siegert | Files touched by this commit (161) | Package updated
Log message:
Revbump all Go packages after go121 update
   2024-03-23 07:34:00 by Iku Iwasa | Files touched by this commit (3) | Package updated
Log message:
fzf: update to 0.48.1

0.48.1

* 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

0.48.0

* 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

       # Set up fzf key bindings and fuzzy completion
       eval "$(fzf --zsh)"

  * 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.

0.47.0

* 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
  * Option precedence from lower to higher
    a. Options read from $FZF_DEFAULT_OPTS_FILE
    b. Options from $FZF_DEFAULT_OPTS
    c. Options from command-line arguments
* Bug fixes and improvements
   2024-02-10 07:04:36 by Iku Iwasa | Files touched by this commit (3) | Package updated
Log message:
fzf: update to 0.46.1

* Bug fixes and improvements
* Updated rivo/uniseg dependency to v0.4.6
   2024-02-07 15:51:04 by Benny Siegert | Files touched by this commit (156) | Package updated
Log message:
Revbump all Go packages after go121 update
   2024-01-28 09:18:18 by Iku Iwasa | Files touched by this commit (3) | Package updated
Log message:
fzf: update to 0.46.0

* 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
   2024-01-10 20:14:43 by Benny Siegert | Files touched by this commit (152) | Package updated
Log message:
Revbump all Go packages after go121 update
   2024-01-07 09:12:26 by Iku Iwasa | Files touched by this commit (3) | Package updated
Log message:
fzf: update to 0.45.0

* Added transform action to conditionally perform a series of actions

    # Disallow selecting an empty line
    echo -e "1. Hello\n2. Goodbye\n\n3. Exit" |
      fzf --height '~100%' --reverse --header 'Select one' \
          --bind 'enter:transform:[[ -n {} ]] && echo accept || echo \ 
"change-header:Invalid selection"'

    # Move cursor past the empty line
    echo -e "1. Hello\n2. Goodbye\n\n3. Exit" |
      fzf --height '~100%' --reverse --header 'Select one' \
          --bind 'enter:transform:[[ -n {} ]] && echo accept || echo \ 
"change-header:Invalid selection"' \
          --bind 'focus:transform:[[ -n {} ]] && exit; [[ {fzf:action} \ 
=~ up$ ]] && echo up || echo down'

    # A single key binding to toggle between modes
    fd --type file |
      fzf --prompt 'Files> ' \
          --header 'CTRL-T: Switch between Files/Directories' \
          --bind 'ctrl-t:transform:[[ ! {fzf:prompt} =~ Files ]] &&
                    echo "change-prompt(Files> )+reload(fd --type \ 
file)" ||
                    echo "change-prompt(Directories> )+reload(fd --type \ 
directory)"'

* Added placeholder expressions
  * {fzf:action} - The name of the last action performed
  * {fzf:prompt} - Prompt string (including ANSI color codes)
  * {fzf:query} - Synonym for {q}

* Added support for negative height

    # Terminal height minus 1, so you can still see the command line
    fzf --height=-1

  This handles a terminal resize better than --height=$(($(tput lines) - 1))

* Added: accept-or-print-query action that acts like accept but prints the
  current query when there's no match for the query

    # You can make CTRL-R paste the current query when there's no match
    export FZF_CTRL_R_OPTS='--bind enter:accept-or-print-query'

  * Note that there are alternative ways to implement the same strategy

      # 'become' is apparently more versatile but it's not available on Windows.
      export FZF_CTRL_R_OPTS='--bind "enter:become:if [ -z {} ]; then echo \ 
{q}; else echo {}; fi"'

      # Using the new 'transform' action
      export FZF_CTRL_R_OPTS='--bind "enter:transform:[ -z {} ] && \ 
echo print-query || echo accept"'

* Added show-header and hide-header actions
* Bug fixes
   2023-12-05 20:46:19 by Benny Siegert | Files touched by this commit (146) | Package updated
Log message:
Revbump all Go packages after go121 update