mirror of
				https://github.com/ohmyzsh/ohmyzsh.git
				synced 2024-05-11 05:55:17 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			59 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #
 | |
| # 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'"
 |