--- /dev/null
+#!/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
+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
--- /dev/null
+#!/bin/sh
+
+tmux has-session -t path-extractor && tmux kill-session -t path-extractor || :
+tmux new-session -d -s path-extractor "
+ ~/bin/path-extractor.zsh < /tmp/tmux-buffer
+ tmux detach
+ sleep 20
+"
+tmux set-option -t path-extractor status off
+exec tmux attach-session -t path-extractor
capture-pane -J
save-buffer /tmp/tmux-buffer
delete-buffer
- display-popup -EK -w 100% -R "urlview /tmp/tmux-buffer"
+ display-popup -KE -w 100% -R "urlview /tmp/tmux-buffer"
}
bind-key y {
split-window 'vim -c "set listchars=" -c "match ExtraWhitespace //" /tmp/tmux-buffer'
}
+bind-key o {
+ capture-pane -J
+ save-buffer /tmp/tmux-buffer
+ delete-buffer
+ display-popup -KE -w 100% -R "~/bin/tmux-path-extractor.sh"
+}
+
bind-key Y {
capture-pane -J -S - -E -
save-buffer /tmp/tmux-buffer