Contanto que o seu prompt seja um prompt do shell (por exemplo, uma chamada para read
), todas as outras respostas são válidas e úteis
Se não for (você não está completamente claro a esse respeito), por exemplo quando você estiver usando um interpretador SQL xxxsql
você pode usar
rlwrap --multi-line -a xxxsql
e, em seguida, use uma chave especial (configurável) para invocar o editor de sua escolha (especificado por, por exemplo, export RLWRAP_EDITOR="vim '+call cursor(%L,%C)"
na entrada - o call_cursor
é útil para preservar a posição do cursor ao invocar vim
)
Como um privilégio extra, você terá um histórico de comandos completo, mesmo para os comandos de várias linhas (que são "compactados" em linhas únicas antes de serem colocados na lista de histórico, mas expandidos novamente quando forem reutilizados )
edit: mais informações podem ser encontradas na página do Github do . Como todos os comandos que usam a biblioteca readline do GNU , a maior parte de seu comportamento é especificado nos usuários $INPUTRC
para o qual rlwrap
adicionou várias opções próprias que controlam , entre outras coisas, a chave especial acima mencionada para invocar um editor externo ( CTRL + ^ por padrão)