Add mvim script for MacVim.app/Contents/bin/mvim

This commit is contained in:
Kazuki Sakamoto
2017-05-02 10:24:05 -07:00
parent a5ebfbc999
commit 3417d483e3
+77
View File
@@ -0,0 +1,77 @@
#!/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).
#
# Find Vim executable
if [ -L $0 ]; then
# readlink -f
curdir=`pwd -P`
self_path=$0
cd `dirname $self_path`
while [ -L $self_path ]; do
self_path=`readlink $self_path`
cd `dirname $self_path`
self_path=`basename $self_path`
done
binary="`pwd -P`/../MacOS/Vim"
cd $curdir
else
binary="`dirname "$0"`/../MacOS/Vim"
fi
if ! [ -x $binary ]; then
echo "Sorry, cannot find Vim executable."
exit 1
fi
# 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
# Logged in over SSH? No gui.
if [ -n "${SSH_CONNECTION}" ]; then
gui=
fi
# 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