]> Sergey Matveev's repositories - dotfiles.git/blobdiff - bin/bin/pe
fzf
[dotfiles.git] / bin / bin / pe
diff --git a/bin/bin/pe b/bin/bin/pe
new file mode 100755 (executable)
index 0000000..8b64702
--- /dev/null
@@ -0,0 +1,29 @@
+#!/bin/zsh
+
+exec >&2
+fns=()
+toprint=()
+typeset -A seen
+ctr=0
+path-extractor | while read fn ; do
+    [[ $seen[$fn] -eq 1 ]] && continue
+    seen+=($fn 1)
+    fns+=($fn)
+    toprint+=(`printf "%X:%s" $ctr "${fn}"`)
+    ctr=$(( $ctr + 1 ))
+done
+[[ $ctr -le 20 ]] && print -C 1 $toprint || print -c $toprint
+print -n "> "
+read choice < /dev/tty
+[[ "$choice" = "q" ]] && exit
+if [[ "$choice" = "*" ]]; then
+    buf=$fns
+else
+    buf=()
+    for c in ${=choice} ; do
+        fn=$fns[$(( 1 + 16#$c ))]
+        buf+=($fn)
+    done
+fi
+print $buf
+print -n $buf | xclip -in -selection clipboard