aboutsummaryrefslogblamecommitdiff
path: root/sh/shrc.d/ed.sh
blob: c7afb176b4902f001b804535f6fdd059e47de15f (plain) (tree)
1
2
3
4
5
6
7
8
9

                                                                             

                                                                              
      
 
                                                           
                      
 

                              
 
                                          

                                              
          
      


                                                                      
                                                 



                              
 
# 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 - </dev/null >&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 ] && hash rlwrap 2>/dev/null ; then
        command rlwrap ed "$@"
    else
        command ed "$@"
    fi
}