PICK(1)

NAME
pick - fuzzy select anything

SYNOPSIS
pick [-h] [-v] [-q QUERY] [-d [-o]] [-x | -X]

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

pick accepts a list of choices as input and produces the selected choice as output.

pick supports these options and arguments:

-h  output a help message and exit.

-v  output the version and exit.

-q QUERY
    supply an initial search query.

-d  read and display descriptions.

    When the -d option is supplied, input lines will be split into two parts by the last occurence of IFS. Both parts will be displayed but only the first part will be used when searching.

-o  output description of selected on exit.

-x  enable the use of the alternate screen terminal feature.

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

The pick ncurses(3X) interface is operated with the following keys:

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

Enter
    Output the currently selected choice and exit.

Printable characters
    Printable characters are added to the search query input field and will refine the current search query.

Left/Right or 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
    Delete one character to the left of the cursor in the search query input field.

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

Ctrl-W
    Delete to the beginning of the closest word to the left in the search query input field.

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.

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

IFS Determines the separator used between choices and descriptions.

VIM If set, disables the use of the alternate screen terminal feature. This avoids issues with using the alternate screen when run using system() in vim(1). To force the use of the alternate screen run pick with the -x option.

EXAMPLES
pick can be used to select anything and is very effective when combined with utilities like xargs(1).

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

    find -type f | pick | xargs xdg-open

Select a man page to display with man(1):

    apropos -l . | fltr | pick -do | tac | xargs man

AUTHORS
Calle Erlandsson <calle@thoughtbot.com> thoughtbot <hello@thoughtbot.com>