Jonathan "Duke" Leto
13 years ago
1 changed files with 72 additions and 0 deletions
@ -0,0 +1,72 @@ |
|||||
|
#!/bin/sh |
||||
|
# |
||||
|
# This shell script passes all its arguments to the binary inside the |
||||
|
# MacVim.app application bundle. If you make links to this script as view, |
||||
|
# gvim, etc., then it will peek at the name used to call it and set options |
||||
|
# appropriately. |
||||
|
# |
||||
|
# Based on a script by Wout Mertens and suggestions from Laurent Bihanic. This |
||||
|
# version is the fault of Benji Fisher, 16 May 2005 (with modifications by Nico |
||||
|
# Weber and Bjorn Winckler, Aug 13 2007). |
||||
|
# First, check "All the Usual Suspects" for the location of the Vim.app bundle. |
||||
|
# You can short-circuit this by setting the VIM_APP_DIR environment variable |
||||
|
# or by un-commenting and editing the following line: |
||||
|
# VIM_APP_DIR=/Applications |
||||
|
|
||||
|
if [ -z "$VIM_APP_DIR" ] |
||||
|
then |
||||
|
myDir="`dirname "$0"`" |
||||
|
myAppDir="$myDir/../Applications" |
||||
|
for i in ~/Applications ~/Applications/vim $myDir $myDir/vim $myAppDir $myAppDir/vim /Applications /Applications/vim /Applications/Utilities /Applications/Utilities/vim; do |
||||
|
if [ -x "$i/MacVim.app" ]; then |
||||
|
VIM_APP_DIR="$i" |
||||
|
break |
||||
|
fi |
||||
|
done |
||||
|
fi |
||||
|
if [ -z "$VIM_APP_DIR" ] |
||||
|
then |
||||
|
echo "Sorry, cannot find MacVim.app. Try setting the VIM_APP_DIR environment variable to the directory containing MacVim.app." |
||||
|
exit 1 |
||||
|
fi |
||||
|
binary="$VIM_APP_DIR/MacVim.app/Contents/MacOS/Vim" |
||||
|
|
||||
|
# Next, peek at the name used to invoke this script, and set options |
||||
|
# accordingly. |
||||
|
|
||||
|
name="`basename "$0"`" |
||||
|
gui= |
||||
|
opts= |
||||
|
|
||||
|
# GUI mode, implies forking |
||||
|
case "$name" in m*|g*|rm*|rg*) gui=true ;; esac |
||||
|
|
||||
|
# Restricted mode |
||||
|
case "$name" in r*) opts="$opts -Z";; esac |
||||
|
|
||||
|
# vimdiff, view, and ex mode |
||||
|
case "$name" in |
||||
|
*vimdiff) |
||||
|
opts="$opts -dO" |
||||
|
;; |
||||
|
*view) |
||||
|
opts="$opts -R" |
||||
|
;; |
||||
|
*ex) |
||||
|
opts="$opts -e" |
||||
|
;; |
||||
|
esac |
||||
|
|
||||
|
# Last step: fire up vim. |
||||
|
# The program should fork by default when started in GUI mode, but it does |
||||
|
# not; we work around this when this script is invoked as "gvim" or "rgview" |
||||
|
# etc., but not when it is invoked as "vim -g". |
||||
|
if [ "$gui" ]; then |
||||
|
# Note: this isn't perfect, because any error output goes to the |
||||
|
# terminal instead of the console log. |
||||
|
# But if you use open instead, you will need to fully qualify the |
||||
|
# path names for any filenames you specify, which is hard. |
||||
|
exec "$binary" -g $opts ${1:+"$@"} |
||||
|
else |
||||
|
exec "$binary" $opts ${1:+"$@"} |
||||
|
fi |
Loading…
Reference in new issue