#autoload # Line motions that do not leave the current history entry, # for editing in multi-line buffers. # To use: # autoload -Uz move-line-in-buffer # zle -N up-line-in-buffer move-line-in-buffer # zle -N down-line-in-buffer move-line-in-buffer # # then bindkey as you prefer local hno=$HISTNO curs=$CURSOR zle .${WIDGET:s/in-buffer/or-history} "$@" && (( HISTNO != hno && (HISTNO=hno, CURSOR=curs) )) return 0