Supondo que você esteja no bash, use Ctrl + U .
Digamos que eu digitei um comando no terminal 'mv * .jpg .. \ photos' e quando estou digitando percebo que não quero mais executar este comando. Eu quero apenas excluir a declaração inteira. Eu não quero limpar a tela inteira ou excluir qualquer histórico bash Eu só quero abortar a linha atual e apagá-lo.
Existe um atalho de teclado ou eu tenho que realmente apagar cada caractere?
Muitos programas que esperam que você digite uma linha de comando e execute a linha, incluindo bash, use Ctrl + C para dizer “Abortar a tarefa atual e ir de volta ao prompt principal ”.
Alguns programas, incluindo bash, usam Ctrl + U ( Limpar comando do terminal no OS X ) para significar" apagar o início da linha, até o cursor "(ou" apagar toda a linha " ).
No bash, diferenças observáveis entre Ctrl + C e Ctrl + U incluem:
Às vezes, você deseja parar de digitar um comando, mas insira-o no histórico do shell para executá-lo mais tarde. Um truque útil é colocar um #
no início da linha e executá-lo: como a linha agora é um comentário, não fará nada. No bash, existe um atalho de tecla única: Alt + # .
Existe uma função readline
que provavelmente não está ligada a um pressionamento de tecla chamado kill-whole-line
que matará a linha inteira em vez de apenas matar a parte antes do cursor ( unix-line-discard
, que é um pouco inadequado). ligado a Ctrl - u ).
Você pode ligar isso a qualquer tecla disponível. Eu gosto de Shift Alt - U pois é uma função relacionada. Esse pressionamento de tecla pode estar vinculado a do-lowercase-version
, o que significa que ele faz o que a versão não deslocada faz (neste caso, upcase-word
). Já que não precisamos de duas chaves para fazer isso, vamos usar essa.
Você pode testá-lo na linha de comando criando a ligação dessa maneira:
bind '"\eU":kill-whole-line'
ou torná-lo persistente, colocando esta linha no seu arquivo ~/.inputrc
:
"\eU":kill-whole-line
Para desfazer a Ctrl - u ou Deslocar Alt - U ( ou qualquer operação que possa ser desfeita), pressione Ctrl - Deslocamento - _ (sublinhado) ou Ctrl - < kbd> x Ctrl - u (dois toques no teclado). Ou você pode colar de volta (yank) o que você matou pressionando Ctrl - y que pode ser repetido se você quiser várias cópias desse texto.
A propósito, se você quiser matar o texto do cursor até o final da linha, você pode pressionar Ctrl - k . Então, ao invés de fazer a ligação descrita acima, você pode matar uma linha inteira pressionando Ctrl - u Ctrl - k . Apenas a parte morta pela segunda dessas teclas será salva no buffer kill, mas você ainda pode desfazer duas vezes para recuperá-las.