From 8dab12526d6c7125c5d9055fcc3adc0d7cf0abd6 Mon Sep 17 00:00:00 2001 From: Andrey Orst Date: Sun, 7 Apr 2019 23:44:46 +0300 Subject: [PATCH] add yank-ring #53 --- rc/modules/fzf-yank-ring.kak | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 rc/modules/fzf-yank-ring.kak diff --git a/rc/modules/fzf-yank-ring.kak b/rc/modules/fzf-yank-ring.kak new file mode 100644 index 0000000..7939538 --- /dev/null +++ b/rc/modules/fzf-yank-ring.kak @@ -0,0 +1,29 @@ +# ╭─────────────╥───────────────────────╮ +# │ Authors: ║ File: │ +# │ Andrey Orst ║ fzf-yank-ring.kak │ +# │ losnappas ║ │ +# ╞═════════════╩═══════════════════════╡ +# │ Module for selecting items in yank │ +# │ ring for fzf.kak plugin │ +# ╞═════════════════════════════════════╡ +# │ GitHub.com/andreyorst/fzf.kak │ +# │ GitHub.com/alexherbo2/yank-ring.kak │ +# ╰─────────────────────────────────────╯ + +try %{ declare-user-mode fzf } +map global fzf -docstring "open yank-ring" 'y' ': fzf-yank-ring' + +define-command -hidden fzf-yank-ring %{ evaluate-commands %sh{ + yanks=$(mktemp ${TMPDIR:-/tmp}/kak-fzf-yanks.XXXXXX) + eval "set -- $kak_opt_yank_ring_history" + while [ $# -gt 0 ]; do + item=$(printf "%s" "$1" | awk 1 ORS='␤') + printf "%s\n" "$item" >> $yanks + shift + done + + message="Swap between yanks." + + printf "%s" "fzf -kak-cmd %{set-register dquote} -items-cmd %{cat $yanks} -filter %{sed \"s/␤/\\\n/g;s/^'|'$//\"}" +}} +