Skip to content

Instantly share code, notes, and snippets.

Created February 6, 2012 12:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/1751927 to your computer and use it in GitHub Desktop.
Save anonymous/1751927 to your computer and use it in GitHub Desktop.
$ file /usr/bin/sensible-editor
/usr/bin/sensible-editor: POSIX shell script text executable
$ cat /usr/bin/sensible-editor
#!/bin/sh
ret="$?"
# Prevent recursive loops, where these values are set to this script
p="$(which sensible-editor)"
[ "$(which $EDITOR || true)" = "$p" ] && EDITOR=
[ "$(which $VISUAL || true)" = "$p" ] && VISUAL=
[ "$(which $SELECTED_EDITOR || true)" = "$p" ] && SELECTED_EDITOR=
if [ -n "$VISUAL" ]; then
${VISUAL} "$@"
ret="$?"
if [ "$ret" -ne 126 ] && [ "$ret" -ne 127 ]; then
exit "$ret"
fi
fi
if [ -r ~/.selected_editor ]; then
. ~/.selected_editor 2>/dev/null || true
elif [ -z "$EDITOR" ] && [ -z "$SELECTED_EDITOR" ] && [ -t 0 ]; then
select-editor && . ~/.selected_editor 2>/dev/null || true
fi
${EDITOR:-${SELECTED_EDITOR:-editor}} "$@"
ret="$?"
if [ "$ret" -eq 126 ] || [ "$ret" -eq 127 ]; then
nano "$@"
ret="$?"
if [ "$ret" -eq 126 ] || [ "$ret" -eq 127 ]; then
nano-tiny "$@"
ret="$?"
if [ "$ret" -eq 126 ] || [ "$ret" -eq 127 ]; then
vi "$@"
ret="$?"
if [ "$ret" -eq 126 ] || [ "$ret" -eq 127 ]; then
echo "Couldn't find an editor!" 1>&2
echo "Set the \$EDITOR environment variable to y our desired editor." 1>&2
exit 1
fi
fi
fi
fi
exit "$ret"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment