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 yank-pop
on 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 M-y
to ivy-next-line
in the ivy-minibuffer-map
.
(use-package counsel :bind (("M-y" . counsel-yank-pop) :map ivy-minibuffer-map ("M-y" . ivy-next-line)))