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 )