Prompt de Comando do Linux - Ctrl + r - Não está funcionando, portanto, inche

1

Sempre que pressiono Ctrl + r no meu prompt de comando, parece que tenho 10 milissegundos para terminar de digitar o que estou procurando e, nesse momento, ele procura tudo o que eu digitei até agora.

Parece também que faltam comandos que eu digitei.

Além disso, quando eu bato em escape depois de uma busca tão fracassada, ele coloca qualquer coisa idiota que é encontrada na minha linha de comando. Como volto para a linha de comando vazia?

Além disso, como posso percorrer os resultados da pesquisa?

Se essa pesquisa reversa não puder ser melhor, existe uma maneira melhor de pesquisar meu histórico?

    
por Greg_the_Ant 16.09.2010 / 20:12

2 respostas

4

O "i" em "reverse-i-search" significa "incremental" para que ele pesquise enquanto você digita. Se você quiser esperar até terminar de digitar, pode usar history-search-backward (não ligado) ou non-incremental-reverse-search-history (ligado ao Meta-p). Para usar essas funções, você digita o texto primeiro, em seguida, pressiona o pressionamento de tecla que chama a função.

Eu tenho history-search-backward ligado ao PgUp e '' history-search-forward 'ligado ao PgDn.

Para encerrar uma pesquisa, pressione Esc, como você sabe. Para anular uma pesquisa deixando uma linha de comando vazia, pressione Ctrl-G.

    
por 16.09.2010 / 21:38
2

Se você tiver um longo histórico muito , poderá ser a causa do atraso. As variáveis HISTSIZE e HISTFILESIZE são usadas pelo bash para definir o tamanho máximo do histórico.

Verifique também a variável HISTIGNORE para comandos ignorados (isto é, não colocados no histórico). Por exemplo, eu tenho que definir para ignorar comandos como ls ou sair que eu não preciso no meu histórico.

Para "rolar" os resultados da pesquisa, mantenha pressionadas as teclas Ctrl-r (para trás) ou Ctrl-s (para frente). Tenha cuidado, porém, que Ctrl-s é frequentemente usado para "bloquear" o terminal (com Ctrl-Q para desbloquear), então você pode ter que remapear para outra coisa. Você pode usar algo como

stty stop ^G

para mapear Ctrl-g para o terminal e liberar o atalho Ctrl-s usado pelo bash (para procurar encaminhar no histórico).

    
por 16.09.2010 / 21:12

Tags