(reverse-i-search) no Bash

22

Eu geralmente acabo usando CTRL + r para (reverse-i-search), no entanto, às vezes eu passo o comando que estava procurando; se eu fizer novamente um (reverse-i-search) , não o encontrará mais. Eu suponho que o ponteiro atual para o histórico de comandos é antes do comando que estou procurando.

Alguém sabe como voltar ao comando mais atual do histórico sem precisar clicar 1000 vezes o down arrow ?

    
por Mike 01.07.2010 / 21:37

2 respostas

7

Há um pergunta semelhante em stackoverflow.com .

A melhor resposta é usar Ctrl+G para cancelar a pesquisa atual.

    
por 01.07.2010 / 21:59
35

Na verdade, outra resposta para essa pergunta dá uma opção melhor.

No seu ~/.bashrc , adicione a seguinte linha:

stty -ixon

Então você pode usar Ctrl - s para avançar no histórico da mesma maneira que você usaria Ctrl - r para voltar atrás.

Isso funcionará até mesmo para iniciar uma nova pesquisa de encaminhamento (chamada i-search em oposição a reverse-i-search ) durante a navegação pelo histórico. Suponha que você faça Ctrl - r e digite algum texto de um comando próximo ao seu destino e pressione a seta para cima várias vezes ultrapassando o que você estava realmente procurando (ou você muda de ideia) . Agora pressione Ctrl - s e digite alguns caracteres daquela linha. Zoooom! Direto para isso.

    
por 01.07.2010 / 22:57