# # See README.md # # Derek Wyatt (derek@{myfirstnamemylastname}.org # function callvim { if [[ $# == 0 ]]; then cat <<EOH usage: callvim [-b cmd] [-a cmd] [file ... fileN] -b cmd Run this command in GVIM before editing the first file -a cmd Run this command in GVIM after editing the first file file The file to edit ... fileN The other files to add to the argslist EOH return 0 fi local cmd="" local before="<esc>" local after="" while getopts ":b:a:" option do case $option in a) after="$OPTARG" ;; b) before="$OPTARG" ;; esac done shift $((OPTIND-1)) if [[ ${after#:} != $after && ${after%<cr>} == $after ]]; then after="$after<cr>" fi if [[ ${before#:} != $before && ${before%<cr>} == $before ]]; then before="$before<cr>" fi local files if [[ $# -gt 0 ]]; then # absolute path of files resolving symlinks (:A) and quoting special chars (:q) files=':args! '"${@:A:q}<cr>" fi cmd="$before$files$after" gvim --remote-send "$cmd" if typeset -f postCallVim > /dev/null; then postCallVim fi } alias v=callvim alias vvsp="callvim -b':vsp'" alias vhsp="callvim -b':sp'" alias vk="callvim -b':wincmd k'" alias vj="callvim -b':wincmd j'" alias vl="callvim -b':wincmd l'" alias vh="callvim -b':wincmd h'"