1 #!/bin/bash 2 3 # Add these lines to your .vimrc file 4 # 5 # map <C-r> :! vim_smdb return_states <cword> <CR> :execute 'edit' system("cat ~/.smdb_tmp/cur") <CR> 6 # map <C-c> :! vim_smdb <cword> <CR> :execute 'edit' system("cat ~/.smdb_tmp/cur") <CR> 7 # 8 # Now you can move your cursor over a function and hit CTRL-c to see how it's 9 # called or CTRL-r to see what it returns. Use the ":bd" command to get back to 10 # your source. 11 12 DIR="$HOME/.smdb_tmp" 13 mkdir -p $DIR 14 15 for i in $(seq 1 100) ; do 16 if [ ! -e $DIR/$i ] ; then 17 break 18 fi 19 done 20 21 if [ $i == 100 ] ; then 22 i=1 23 fi 24 25 next=$(($i + 1)) 26 27 rm -f $DIR/$next 28 rm -f $DIR/.${i}.swp 29 30 func="" 31 if [[ "$3" != "" ]] ; then 32 func="$3" 33 elif [[ "$2" != "" ]] ; then 34 func="$2" 35 elif [[ "$1" != "" ]] ; then 36 func="$1" 37 fi 38 39 echo "$func" >> $DIR/history 40 tail -n 7 $DIR/history | tac | perl -ne 's/\n/ /; print' | perl -ne 's/ $//; print' > $DIR/$i 41 echo "" >> $DIR/$i 42 echo "==========================" >> $DIR/$i 43 smdb $* >> $DIR/$i 44 45 echo "$DIR/$i" > $DIR/cur 46