Entendo que posso digitar \
enterno final de uma bash
linha de comando para continuar esse comando em outra linha. Mas como posso dividir uma linha de comando de prompt - que já foi totalmente digitada - em duas?
Por exemplo, como posso quebrar essa linha antes then
sem precisar cortar o restante e digitar tudo de novo?
$ if true; then ls; fi
fc
comando - ele está disponível em quase todos os shells.Respostas:
Um caractere de nova linha é LF (feed de linha), também conhecido como Control-J. Se você pressionar Ctrl+ J, isso executará o comando
accept-line
, igual à Returntecla. Para inserir um caractere LF literal, pressione Ctrl+ V Ctrl+ J. O comando Ctrl+ V(quoted-insert
) insere o próximo caractere literalmente. Assim, para dividir uma linha, você pode inserir \ Ctrl+ V.Se você fizer isso com frequência, poderá transformá-lo em uma macro:
fonte
Você pode usar
edit-and-execute-command
, geralmente mapeado para Ctrl+ x+ e, para abrir o comando atual em um editor . Ao sair do editor, o comando será executado.fonte
vim
aos meus assim:export EDITOR=vim
.:q!
ouZQ
sem sucesso.ggdG:wq
ou:%d|wq
etc.). O comando permanecerá no histórico (possivelmente duplicado, se você o tiver recuperado de uma entrada anterior), mas não será executado.Nota - esta resposta específica para vi e vim
Para editar a linha digitada atual, pressione
ESC
(para entrar no modo de comandovi
ouvim
) e digitev
ouvi
.Observe que todos os comandos do vi / vim edit funcionam. por exemplo
ESC
+A
coloca no final da linha digitada atual.ESC
+0
coloca o cursor no início da linha.fonte
CTRL
+v
thenCTRL
+j
para lançar uma nova linha deve funcionar.