A edição de linha no ksh original é bastante limitada. Você pode querer usar um de seus "clones", como zsh¹ ou bash.
Para o ksh93, descubro que, se você usar o modo de edição vi
( ksh -o vi
) em oposição ao emacs
ou gmacs
one, então chamar os comandos multilinha funciona , embora os caracteres de nova linha sejam renderizados como ^J
. Isso também é o que você obtém com pdksh
e suas derivadas em todos os modos de edição.
Note que você também pode inserir esses caracteres de nova linha com Ctrl + V Ctrl + J para que o código de múltiplas linhas seja inserido em uma linha e depois ser capaz de lembre-se disso mais tarde, mesmo no modo emacs
.
Outra opção é usar fc
para editar a linha anterior em um editor de texto real:
fc while
Chamaria seu editor preferido (em $FCEDIT
, o padrão é ex
em meu sistema) na última linha de comando (possivelmente multilinha) que continha while
. E depois executá-lo depois de salvar e sair no editor.
¹ zsh
também tem um modo de emulação ksh
que faz com que ele se comporte mais próximo de ksh
caso haja alguns comportamentos ksh
nos quais você confia (inserido com emulate ksh
ou ao invocar zsh
as ksh
)