Quando você pressiona Enter (comando accept-line
), a linha atual é analisada e programada para execução. Se a linha estiver sintaticamente incompleta (por exemplo, echo \
ou for x in foo
), ela não será executada, mas já estará armazenada. Você pode ver que o zsh está nesse estado porque mostra o prompt PS2
em vez do usual PS1
.
Até onde eu sei, não há uma maneira interna de editar essas linhas armazenadas. Deve ser possível armazenando a linha atual sem executá-la e recuperando a linha do histórico anterior para edição.
A maneira mais fácil de obter a linha anterior é certificar-se de que a linha atual está inacabada (por exemplo, digite \
no final), aceite-a (pressione Enter ) e cancele-a (pressione Ctrl + C ). Então, você pode chamar todo o comando armazenado como uma única linha de histórico como um único buffer de várias linhas pressionando Up .