Veja edit-command-line
em zshcontrib
.
bindkey -M vicmd v edit-command-line
No bash, usando o modo vi, se eu clicar Esc , v , minha linha de comando atual é aberta no editor especificado por $EDITOR
e eu posso edite-o em tela cheia antes de "salvar" o comando a ser retornado ao shell e executado.
Como posso conseguir um comportamento semelhante no zsh? Acertar v no modo de comando resulta em uma campainha que não tem efeito aparente, apesar da variável de ambiente EDITOR
estar definida.
Caso você prefira atalhos de teclado do Emacs:
autoload -z edit-command-line
zle -N edit-command-line
bindkey "^X^E" edit-command-line
Você pode usar fc
para editar o último comando no histórico. Não é o mesmo que editar o mesmo comando, mas um toque rápido na tecla Enter faz com que seu comando atual seja o último comando do histórico.
Esta é a configuração completa que adicionei ao meu ~/.zshrc
para obter o mesmo comportamento do bash:
export VISUAL=vim
autoload edit-command-line; zle -N edit-command-line
bindkey -M vicmd v edit-command-line