changeset 129:83a863716c11

Add v plugin
author zegervdv <zegervdv@me.com>
date Wed, 01 Oct 2014 08:37:05 +0200
parents 51924b069324
children 212e7e98554d
files bin/v vimrc
diffstat 2 files changed, 55 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bin/v	Wed Oct 01 08:37:05 2014 +0200
@@ -0,0 +1,54 @@
+#!/usr/bin/env bash
+
+[ "$vim" ] || vim=vim
+[ $viminfo ] || viminfo=~/.viminfo
+
+usage="$(basename $0) [-a] [-l] [-[0-9]] [--debug] [--help] [regexes]"
+
+[ $1 ] || list=1
+
+fnd=()
+for x; do case $x in
+    -a) deleted=1;;
+    -l) list=1;;
+    -[1-9]) edit=${x:1}; shift;;
+    --help) echo $usage; exit;;
+    --debug) vim=echo;;
+    --) shift; fnd+=("$@"); break;;
+    *) fnd+=("$x");;
+esac; shift; done
+set -- "${fnd[@]}"
+
+[ -f "$1" ] && {
+    $vim "$1"
+    exit
+}
+
+while IFS=" " read line; do
+    [ "${line:0:1}" = ">" ] || continue
+    fl=${line:2}
+    [ -f "${fl/\~/$HOME/}" -o "$deleted" ] || continue
+    match=1
+    for x; do
+        [[ "$fl" =~ $x ]] || match=
+    done
+    [ "$match" ] || continue
+    i=$((i+1))
+    files[$i]="$fl"
+done < "$viminfo"
+
+if [ "$edit" ]; then
+    resp=${files[$edit]}
+elif [ "$i" = 1 -o "$list" = "" ]; then
+    resp=${files[1]}
+elif [ "$i" ]; then 
+    while [ $i -gt 0 ]; do
+         echo -e "$i\t${files[$i]}"
+         i=$((i-1))
+    done
+    read -p '> ' CHOICE
+    resp=${files[$CHOICE]}
+fi
+
+[ "$resp" ] || exit
+$vim "${resp/\~/$HOME}"
--- a/vimrc	Tue Sep 30 18:20:34 2014 +0200
+++ b/vimrc	Wed Oct 01 08:37:05 2014 +0200
@@ -30,7 +30,7 @@
 set lbr
 set tabstop=2 shiftwidth=2
 if has("gui_running")
-  set background=dark
+  " set background=dark
   " color base16-ocean
   color Tomorrow-Night
 else