# Add a colon prompt to ed when a command is expected rather than text; makes # it feel a lot more like using ex. Only do this when stdin is a terminal, # however. Also try and use -v for more verbose error output, and rlwrap(1) if # it's available. ed() { # We're only adding options if input is from a terminal if [ -t 0 ] ; then # Colon prompt (POSIX) set -- -p : "$@" # Verbose if available (not POSIX) if ed -sv - &0 2>&0 ; then set -- -v "$@" fi fi # Execute the ed(1) call, in a wrapper if appropriate and with the # concluded options if [ -t 0 ] && command -v rlwrap >/dev/null 2>&1 ; then command rlwrap ed "$@" else command ed "$@" fi }