]> git.mjollnir.org Git - scripts.git/commitdiff
Added loginvim wrapper for thunderbird external editor master
authorPenny Leach <penny@mjollnir.org>
Tue, 17 Jul 2012 07:14:12 +0000 (09:14 +0200)
committerPenny Leach <penny@mjollnir.org>
Tue, 17 Jul 2012 07:14:12 +0000 (09:14 +0200)
bin/loginvim [new file with mode: 0755]
bin/mvim [new file with mode: 0755]

diff --git a/bin/loginvim b/bin/loginvim
new file mode 100755 (executable)
index 0000000..642554c
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+/usr/bin/login -f "$USER" /bin/zsh ~/bin/mvim "$@"
diff --git a/bin/mvim b/bin/mvim
new file mode 100755 (executable)
index 0000000..653cf78
--- /dev/null
+++ b/bin/mvim
@@ -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