Abo Abo’s counsel package (part of swiper/ivy) puts together a set of replacements for Emacs commands that leverages the power of the
ivy completion library.
One of my favourites is
counsel-yank-pop which replaces the standard clipboard history (kill-ring in Emacs terminology) with an ivy-powered version. You can then type search strings to filter your clipboard history dynamically.
I use the following code to configure
counsel-yank-pop to replace the standard
M-y. The only thing I missed about the vanilla
yank-pop was that repeatedly pressing
M-y cycled through the entries. The counsel version doesn’t do this by default but this is easy to add by binding
ivy-next-line in the
(use-package counsel :bind (("M-y" . counsel-yank-pop) :map ivy-minibuffer-map ("M-y" . ivy-next-line)))