The pick(1)
utility allows users to choose one option from a set of choices
using an interface with fuzzy search functionality.
A package for Pick is available as of Debian 9 and Ubuntu 15.10.
apt-get install pick
brew install pick
sudo port install pick
cd /usr/ports/sysutils/pick
make install clean
pkg install pick
Available in ports under sysutils/pick
.
- 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
- Follow the bundled installation instructions:
cd pick-VERSION
less INSTALL.md
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 (c) 2017 Calle Erlandsson, Anton Lindqvist & thoughtbot.