I prefer the emacs bindings for the command line such as C-A, C-U (mostly due to muscle memory), but have set up my $EDITOR as vim. This allows me to do C-X C-E, which opens the current command in vim to be edited.
If you are using zsh, you need to add this to ur .zshrc
autoload -z edit-command-line
zle -N edit-command-line
bindkey "^X^E" edit-command-line