Limpar comando do terminal no OS X

19

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?

    
por Paul Alexander 25.09.2010 / 00:23

3 respostas

28

Supondo que você esteja no bash, use Ctrl + U .

    
por 25.09.2010 / 00:27
7

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:

  • Você pode desfazer Ctrl + U , mas não Ctrl + C .
  • Ctrl + U retém a parte da linha após o cursor, se houver.
  • Ctrl + U apaga o texto afetado da tela; Ctrl + C mostra um novo prompt abaixo da linha atual.

À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 + # .

    
por 25.09.2010 / 01:17
1

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.

    
por 25.09.2010 / 04:52