A fuzzy search tool for the command-line
C Perl Roff Perl6 Makefile Shell M4
Latest commit 63c7da5 Feb 7, 2017 @mptre mptre Plug memory leak
An intentional memory leak was introduced in commit c6bd924 (Remove
global input variable). Fix the leak in order to silence ASAN.

README.md

Pick

pick(1) usage

The pick(1) utility allows users to choose one option from a set of choices using an interface with fuzzy search functionality.

Installation

Arch Linux

A package for Pick is available in the AUR.

curl -O https://aur.archlinux.org/cgit/aur.git/snapshot/pick.tar.gz
tar -xzf pick.tar.gz
cd pick
makepkg -sri

Debian and Ubuntu

A package for Pick is available as of Debian 9 and Ubuntu 15.10.

apt-get install pick

Mac OS X via Homebrew

brew install pick

Mac OS X via MacPorts

sudo port install pick

FreeBSD via Ports

cd /usr/ports/sysutils/pick
make install clean

FreeBSD via pkgng

pkg install pick

From source

  1. Download the latest release from the releases page, optionally check the signature and extract the archive:
wget https://github.com/calleerlandsson/pick/releases/download/vVERSION/pick-VERSION.tar.gz
wget https://github.com/calleerlandsson/pick/releases/download/vVERSION/pick-VERSION.tar.gz.asc
gpg --verify pick-VERSION.tar.gz.asc
tar -xzf pick-VERSION.tar.gz
  1. Follow the bundled installation instructions:
cd pick-VERSION
less INSTALL.md

Usage

pick(1) reads a list of choices on stdin and outputs the selected choice on stdout. Therefore it is easily used both in pipelines and subshells:

git ls-files | pick | xargs less # Select a file in the current git repository to view in less
cd $(find . -type d | pick)      # Select a directory to cd into

Pick can also easily be used from within Vim both using system() and !. For ready-to-map functions, see the pick.vim Vim plugin. For examples of how to call pick(1) from within Vim, see the pick.vim source code.

Please note: pick requires a fully functional terminal to run and therefore cannot be run from within gvim or MacVim.

See the pick(1) man page for detailed usage instructions and more examples.

Copyright

Copyright (c) 2016 Calle Erlandsson, Anton Lindqvist & thoughtbot.