Digamos que digitei um comando no terminal 'mv * .jpg .. \ photos' e, enquanto digito, percebo que não quero mais executar esse comando. Quero apenas excluir a declaração inteira. Não quero limpar a tela inteira ou excluir nenhum histórico do bash, apenas quero abortar a linha atual e apagá-la.
Existe um atalho de teclado ou eu tenho que realmente excluir cada caractere?
Muitos programas que esperam que você digite uma linha de comando e, em seguida, execute essa linha, incluindo o bash, usam Ctrl+ Cpara significar "Interromper a tarefa atual e voltar ao prompt principal".
Alguns programas, incluindo o bash, usam Ctrl+ U( comando Limpar do terminal no OS X ) para significar "apagar o início da linha, até o cursor" (ou "apagar a linha inteira").
No bash, as diferenças observáveis entre Ctrl+ Ce Ctrl+ Uincluem:
Às vezes, você deseja parar de digitar um comando, mas inseri-lo no histórico do shell para executar mais tarde. Um truque útil é colocar um
#
no início da linha e executá-la: como a linha agora é um comentário, ela não fará nada. No bash, há um atalho de tecla única: Alt+ #.fonte
Há uma
readline
função que provavelmente não está vinculada a um pressionamento de tecla chamadokill-whole-line
que mata a linha inteira, em vez de matar apenas a parte antes do cursor (unix-line-discard
que é um pouco impróprio e está vinculado a Ctrl- u).Você pode vincular isso a qualquer pressionamento de tecla disponível. Eu gosto ShiftAlt- Ujá que é uma função relacionada. Esse pressionamento de tecla pode estar vinculado, o
do-lowercase-version
que significa que ele faz o que a versão não deslocada faz (neste casoupcase-word
). Como realmente não precisamos de duas chaves para fazer isso, vamos usar essa.Você pode experimentá-lo na linha de comando, criando a ligação desta maneira:
ou torne-o persistente, colocando esta linha no seu
~/.inputrc
arquivo:Para desfazer uma Ctrl- uou ShiftAlt- U(ou qualquer operação que possa ser desfeita), pressione Ctrl- Shift- _(sublinhado) ou Ctrl- x Ctrl- u(duas teclas). Ou você pode colar (puxar) o que matou pressionando Ctrl- o yque pode ser repetido se você desejar várias cópias desse texto.
A propósito, se você deseja eliminar o texto do cursor até o final da linha, pressione Ctrl- k. Portanto, em vez de fazer a ligação descrita acima, você pode eliminar uma linha inteira pressionando Ctrl- u Ctrl- k. Somente a parte eliminada pelo segundo pressionamento de tecla será salva no buffer de interrupção, mas você ainda poderá desfazer duas vezes para recuperar os dois.
fonte