pick

PICK(1)                    BSD General Commands Manual                   PICK(1)

NAME
     pick — fuzzy select anything

SYNOPSIS
     pick [-hvKS] [-d [-o]] [-x | -X] [-q query]

DESCRIPTION
     The pick utility allows users to select from a set of choices using an
     curses(3) interface with fuzzy search functionality.

     The choices are read from stdin, and the selected choice written to stdout.

     The options are as follows:

     -d        Read and display descriptions.  Input lines will be split into
               two parts by the last occurrence of IFS.  Both parts will be
               displayed but only the first part will be used when searching.

     -h        Output a help message and exit.

     -K        Disable toggling of keypad transmit mode.  Useful when running
               pick from within another interactive program which already has
               set the correct transmit mode.

     -o        Output description of selected choice on exit.

     -q query  Supply an initial search query.

     -S        Disable sorting.  Only filter the choices instead of additionally
               sorting by score.  This option can be toggled from within the
               interface, see COMMANDS.

     -v        Output the version and exit.

     -x        Enable the use of the alternate screen terminal feature.  This is
               the default.

     -X        Disable the use of the alternate screen terminal feature.

COMMANDS
     Ctrl-C
           Exit with a erroneous status without outputting the selected choice.
           While this command often being defined as Ctrl-C it is determined by
           the VINTR control character, see termios(4).

     Ctrl-L
           Redraw interface with respect to the current size of the terminal.

     Ctrl-O
           Toggle sorting.

     Up/Down | Ctrl-P/Ctrl-N
           Select between choices matching the current search query.

     Page-Down/Page-Up | Ctrl-V/Alt-V | Alt-Space
           Move the selection to the choice located one page down/up from the
           currently selected choice.

     Home/End | Alt-</Alt->
           Move the selection to the first/last choice matching the current
           search query.

     Enter
           Output the currently selected choice and exit.

     Alt-Enter
           Output the current input query and exit.

     Left/Right | Ctrl-B/Ctrl-F
           Move the cursor left and right in the search query input field.

     Ctrl-A
           Move the cursor to the beginning of the line in the search query
           input field.

     Ctrl-E
           Move the cursor to the end of the line in the search query input
           field.

     Backspace | Ctrl-H
           Delete one character to the left of the cursor in the search query
           input field.

     Delete | Ctrl-D
           Delete the character under the cursor in the search query input
           field.

     Ctrl-W | Alt-Backspace
           Delete the word to the left of the cursor.  A word is recognized as a
           sequence of characters for which either isalnum(3) is true or the
           character is an underscore.

     Ctrl-U
           Delete to the beginning of the line in the search query input field.

     Ctrl-K
           Delete to the end of the line in the search query input field.

     Printable characters
           Added to the search query and will refine the current search.

ENVIRONMENT
     The following environment variables will affect the execution of pick:

     IFS  Determines the separator used between choices and descriptions.

ASYNCHRONOUS EVENTS
     SIGWINCH  The screen is resized.

EXAMPLES
     Select a file in the current directory to open using xdg-open(1):

           $ find . -type f | pick | xargs xdg-open

     Select a command from the history to execute:

           $ eval $(fc -ln 1 | pick)

DIAGNOSTICS
     The pick utility exits 0 on success, and >0 if an error occurs.

HISTORY
     The first version of pick was released on August 18, 2014.  Development was
     sponsored by thoughtbot: https://thoughtbot.com from the start of the
     project until September 2016.

AUTHORS
     Calle Erlandsson <calle@calleerlandsson.com>
     Anton Lindqvist <anton.lindqvist@gmail.com>

BSD                              August 17, 2014                             BSD