Ao inserir um comando que abrange várias linhas no Bash, como edito as linhas anteriores? Sou usuário do Linux Mint (Lisa) usando o Terminal GNOME.
Por exemplo, digamos que eu digite:
$ echo "foo bar
> baz
>
E então, quando estou prestes a digitar a terceira linha do comando, de repente percebo que quero que "foo" e "bar" estejam em linhas separadas. Como reposicionaria meu cursor entre "foo" e "bar", de modo que eu pudesse pressionar enter e colocá-los em linhas separadas?
(Não é fácil como você imagina. A seta para cima não funciona, nem Ctrl-P. Por favor, experimente antes de postar! Obrigado!)
linux
bash
gnome
gnome-terminal
Asher Walther
fonte
fonte
Respostas:
Infelizmente, isso depende
bash
, não do terminal. Suas opções são:Use ponto-e-vírgula em vez de novas linhas, embora mesmo assim você não possa mover uma linha da tela por vez, mas precise usar comandos de movimento de caracteres ou palavras. (Estranhamente,
zsh
pelo menos, você pode mover-se dentro de um comando composto ao editar o histórico, mas não dentro do comando atual .) Às vezesfc
(que o lança ao editor com o comando anterior) é a maneira mais fácil de lidar com comandos compostos.Se você estiver usando o Bash, use a seguinte combinação de teclas:
Ele abrirá o comando no qual você está trabalhando usando seu editor de texto. Salve o arquivo e saia. (Encontrei o comando na apresentação do Shell Hater .) Os usuários do Zsh têm essa alternativa .
fonte
A solução é nunca inserir um comando até que a linha múltipla esteja correta, basta digitar: CtrlvCtrlj quando você quiser ir para a próxima linha. Metabvoltar uma palavra.
crédito para a resposta de @ rici
fonte
Curiosamente, Ctrl+Cé o que você está procurando.
quando você estiver
basta pressionar Ctrl+C(a linha de comando editada será suspensa) e pressionar Up(histórico anterior). Sua solicitação será: (observe a ausência de>)
Agora você pode se movimentar com Left Rightsaltos de linha uniformes.
Há apenas uma peculiaridade; você deve estar no último caractere para adicionar outra linha; portanto, mova-se para editar as linhas existentes (vá para o início Ctrl+A), pressione Enter se isso for suficiente ou vá para final ( Ctrl+E) para adicionar mais linhas Enter. Outra desvantagem é que Ctrl+_(desfazer) restaura apenas as alterações da últimaCtrl+C
fonte
Copie os comandos e cole-os no bloco de notas e formate-os a partir daí. Depois disso, você pode copiar seus comandos de volta para o terminal.
fonte