annotate bin/v @ 251:c6202489e95c

Set configs for tmux-resurrect
author zegervdv <zegervdv@me.com>
date Wed, 25 Feb 2015 09:53:52 +0100
parents 83a863716c11
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
129
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
1 #!/usr/bin/env bash
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
2
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
3 [ "$vim" ] || vim=vim
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
4 [ $viminfo ] || viminfo=~/.viminfo
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
5
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
6 usage="$(basename $0) [-a] [-l] [-[0-9]] [--debug] [--help] [regexes]"
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
7
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
8 [ $1 ] || list=1
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
9
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
10 fnd=()
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
11 for x; do case $x in
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
12 -a) deleted=1;;
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
13 -l) list=1;;
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
14 -[1-9]) edit=${x:1}; shift;;
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
15 --help) echo $usage; exit;;
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
16 --debug) vim=echo;;
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
17 --) shift; fnd+=("$@"); break;;
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
18 *) fnd+=("$x");;
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
19 esac; shift; done
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
20 set -- "${fnd[@]}"
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
21
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
22 [ -f "$1" ] && {
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
23 $vim "$1"
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
24 exit
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
25 }
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
26
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
27 while IFS=" " read line; do
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
28 [ "${line:0:1}" = ">" ] || continue
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
29 fl=${line:2}
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
30 [ -f "${fl/\~/$HOME/}" -o "$deleted" ] || continue
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
31 match=1
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
32 for x; do
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
33 [[ "$fl" =~ $x ]] || match=
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
34 done
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
35 [ "$match" ] || continue
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
36 i=$((i+1))
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
37 files[$i]="$fl"
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
38 done < "$viminfo"
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
39
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
40 if [ "$edit" ]; then
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
41 resp=${files[$edit]}
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
42 elif [ "$i" = 1 -o "$list" = "" ]; then
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
43 resp=${files[1]}
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
44 elif [ "$i" ]; then
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
45 while [ $i -gt 0 ]; do
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
46 echo -e "$i\t${files[$i]}"
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
47 i=$((i-1))
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
48 done
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
49 read -p '> ' CHOICE
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
50 resp=${files[$CHOICE]}
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
51 fi
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
52
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
53 [ "$resp" ] || exit
83a863716c11 Add v plugin
zegervdv <zegervdv@me.com>
parents:
diff changeset
54 $vim "${resp/\~/$HOME}"