zsh como a maioria dos shells modernos tem a opção de escolher entre dois mapeamentos de teclado diferentes para edição de linha de comando: a vi one e emacs one. Em alguns shells (como tcsh ou readline -based como bash ), o emacs one é o padrão e provavelmente o que você espera.
Com zsh , você tem o modo emacs por padrão, a menos que $EDITOR ou $VISUAL contenha vi (se você for um usuário vi / nvi / vim / elvis (embora também vimacs e se $EDITOR seja /home/victor/bin/emacs ...), zsh assume que você prefere o modo vi ).
Para forçar um determinado modo, independentemente do valor de $EDITOR , adicione:
bindkey -e # for emacs
bindkey -v # for vi
ou seu equivalente mais portátil:
set -o emacs
set -o vi
para o seu ~/.zshrc . Veja
info -f zsh -n Keymaps
para detalhes.