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 12DIR="$HOME/.smdb_tmp" 13mkdir -p $DIR 14 15for i in $(seq 1 100) ; do 16 if [ ! -e $DIR/$i ] ; then 17 break 18 fi 19done 20 21if [ $i == 100 ] ; then 22 i=1 23fi 24 25next=$(($i + 1)) 26 27rm -f $DIR/$next 28rm -f $DIR/.${i}.swp 29 30func="" 31if [[ "$3" != "" ]] ; then 32 func="$3" 33elif [[ "$2" != "" ]] ; then 34 func="$2" 35elif [[ "$1" != "" ]] ; then 36 func="$1" 37fi 38 39echo "$func" >> $DIR/history 40tail -n 7 $DIR/history | tac | perl -ne 's/\n/ /; print' | perl -ne 's/ $//; print' > $DIR/$i 41echo "" >> $DIR/$i 42echo "==========================" >> $DIR/$i 43smdb $* >> $DIR/$i 44 45echo "$DIR/$i" > $DIR/cur 46 47