# editor-select.plugin.zsh
-if [ -z "$EDITOR" ]; then
- # Check "atom"
- EDITOR=$(which atom 2>/dev/null)
- if [ $? -eq 0 ]; then
- EDITOR="$EDITOR --wait"
- else
- # Check "mate"
- EDITOR=$(which mate 2>/dev/null)
- if [ $? -eq 0 ]; then
- EDITOR="$EDITOR --wait"
- else
- # Check "subl"
- EDITOR=$(which subl 2>/dev/null)
- if [ $? -eq 0 ]; then
- EDITOR="$EDITOR --wait"
- else
- # Check "vim"
- EDITOR=$(which vim 2>/dev/null)
- if [ $? -ne 0 ]; then
- # Check "vi"
- EDITOR=$(which vi 2>/dev/null)
- fi
- fi
- fi
+for editor in atom mate subl vim vi; do
+ if [ -n "$commands[$editor]" ]; then
+ EDITOR="$commands[$editor]"
+ break
fi
-fi
+done
+unset editor
+
+case "$(basename "$EDITOR")" in
+ "atom"|"mate"|"subl")
+ EDITOR="$EDITOR --wait"
+ ;;
+esac
+
if [ -n "$EDITOR" ]; then
export EDITOR
alias zshrc="$EDITOR ~/.zshrc"