On Aug 20, 11:39pm, Bart Schaefer wrote: } } Try end-of-buffer-or-history ... yes, it's still an emacs-mode widget, Or try this: vi-next-end-of-line() { local curs=$CURSOR zle vi-end-of-line if (( curs <= CURSOR )); then NUMERIC=2 zle vi-end-of-line fi } zle -N vi-next-end-of-line bindkey -a ^E vi-next-end-of-line