No bash, usando o modo vi, se eu pressionar Esc, vminha linha de comando atual é aberta no editor especificado por $EDITOR
e eu posso editá-la em tela cheia antes de 'salvar' o comando a ser retornado ao shell e executado.
Como posso obter um comportamento semelhante no zsh? Bater vno modo de comando resulta em um sino e não tem efeito aparente, apesar da EDITOR
variável de ambiente estar configurada.
edit-command-line
“widget”, você precisará de algo comoautoload edit-command-line; zle -N edit-command-line
em um dos seus arquivos zsh init (consulte a seção Funções do ZLE dazshcontrib
documentação ).bindkey -M vicmd v
configura.<ESC>
para entrar no modo de comando no modo de inserção e, em seguida,v
no modo visual (Meta-v
é o mesmo), ou apenasv
se você já estiver no modo de comando. Se você estiver usando o modo Emacs, a ligação típica éC-x C-e
.bindkey -M vicmd ' ' edit-command-line
Caso você prefira as combinações de teclas do Emacs:
fonte
^x^e
ligação parece ser um padrão no .oh-my-zsh atual , o que é extremamente bom.editor
módulo esteja carregado.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 do seu comando atual o último comando no histórico.fonte
Esta é a configuração completa que eu adicionei ao meu
~/.zshrc
para obter o mesmo comportamento do bash:fonte
editor
módulo seja carregado e /vi
ouvim
selecionado para o modo de comando.