O comando forward-search-history
faria o que você quisesse - ele executaria uma pesquisa incremental na direção de avanço e, se você já estivesse no modo de pesquisa incremental, apenas mudaria a direção da pesquisa, mantendo a string de pesquisa atual. / p>
O problema é alcançar esse comando. As ligações padrão de Readline contêm:
"\C-r": reverse-search-history
"\C-s": forward-search-history
Mas C-s
é o caractere de controle de fluxo do terminal, que não alcança bash
(embora funcione em programas como o Emacs, que alteram as configurações do terminal para desabilitar o processamento do controle de fluxo). Portanto, a ligação padrão é inútil e você precisa vincular outra chave ao comando forward-search-history
.
Outro problema é que as combinações de teclas com o modificador Meta não funcionam para incrementais search - o modificador Meta, na verdade, adiciona o prefixo ESC e o ESC finaliza a pesquisa incremental, mesmo quando é removido do valor da variável isearch-terminators
. Combinações com o prefixo C-x
também não funcionam - pressionar C-x
encerra imediatamente a pesquisa incremental. Portanto, você precisa ligar um C-<key>
simples ao comando forward-search-history
; no entanto, todos esses caracteres de controle já são tomados por comandos readline, portanto, você precisará sacrificar outro comando para liberar uma chave para forward-search-history
.
Exemplo ~/.inputrc
para usar C-t
para a pesquisa direta (substituindo o comando transpose-chars
):
"\C-t": forward-search-history