Não é possível encaminhar o histórico do Bash da pesquisa da mesma forma que no CTRL-r


203

Estou tentando pesquisar meu histórico do bash da mesma forma que com CTRL- r, mas para encaminhar a direção.

Foi uma dor para mim, quando eu bati uma vez com muita freqüência CTRL- r, encontrar o comando anterior novamente.

Como você pode encaminhar a pesquisa no seu histórico do Bash de maneira semelhante à pesquisa reversa?

Respostas:


321

Você também pode procurar adiante. No manual do bash info, " 8.2.5 Pesquisando comandos no histórico ":

Para pesquisar no histórico uma sequência específica, digite C-r. Digitar C-spesquisas para a frente através do histórico.

O problema com o Ctrl-S, no entanto, é que às vezes colide com o controle de fluxo XON / XOFF (no Konsole, por exemplo). A pesquisa é um recurso de linha de leitura, no entanto, e você poderá vinculá-lo a alguma outra chave. Atualização: Mais simples e melhor é apenas desativar o XON / XOFF executando

stty -ixon

4
Isso é brilhante, mas adiciono stty -ixon ao meu .profile e parece não funcionar para novas guias. Alguma idéia de como fazer isso funcionar? Eu adoraria que o XON / XOFF seja desativado por padrão.
John Gallagher

13
Caso outra pessoa tenha o mesmo problema que eu - se você adicionar ao .profile, isso não entrará em vigor. Somente quando você o adiciona ao .bash_profile é que a mágica acontece! Obrigado por uma ótima dica - isso me deixou louco por anos.
John Gallagher

12
@JohnGallagher importante notar é que .bash_profilee .profilesó são de origem para o log-in conchas. Eu colocaria isso em .bashrc(da qual eu fonte .profile).
Victor Zamanian

13
[[ $- == *i* ]] && stty -ixonpode ser usado para evitar o problema descrito aqui
mMontu

3
Caso você esteja usando o PuTTY e não possa / não queira manter .bash_profileem todas as máquinas às quais se conecta, esta resposta sobre o superusuário funciona muito bem.
Fazy

41

O melhor truque que o IMHO está habilitando com pgupe pgdown. basta colocar isso no seu~/.inputrc

"\e[5~": history-search-forward
"\e[6~": history-search-backward

logout / login, digite as primeiras letras e, em seguida, pgupou pgdownpara pesquisar no histórico

ctrl-R pesquise todas as linhas que contenham palavras, enquanto as linhas de pesquisa de histórico-busca-encaminhamento que começam com palavras


2
Você também pode descomentar essas duas linhas /etc/inputrc(por exemplo, no Ubuntu).
falconepl

2
Eu prefiro ligar isso para cima e para baixo seta: "\ e [A": história-search-para trás e "\ e [B": a história-search-forward
shmup

E se isso não tiver efeito no bash?
Sören

26

Você pode tentar https://github.com/dvorka/hstr, que permite a filtragem "sugerir estilo de caixa" do histórico do Bash com pedidos baseados em métricas (opcionais), ou seja, é muito mais eficiente e mais rápida nas direções direta e anterior:

insira a descrição da imagem aqui

Ele pode ser facilmente ligado a Ctrl-re / ouCtrl-s


5
Estou apaixonado. Instruções rápidas para instalação no Ubuntu:sudo add-apt-repository ppa:ultradvorka/ppa; sudo apt-get update; sudo apt-get install hh; hh --show-configuration >> ~/.bashrc;
CivFan

14

Eu costumo pressionar ESCterminal e depois o >. Ele redefine pelo menos e você pode tentar clicar com menos frequência CTRL+ R.


s / clique / pressione / Além disso, você deve pressionar a tecla escape duas vezes (primeira vez para sair da pesquisa para trás).
Croad Langshan #
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.