Controle-r reverse-i-search em bash: como você “reset” de pesquisa no Cygwin?

StackOverflow https://stackoverflow.com/questions/549810

  •  23-08-2019
  •  | 
  •  

Pergunta

Pergunta: Como você dizer Ctrl + r reverse-i-pesquisa para "reiniciar-se" e começar a procurar a partir do fundo seu histórico de cada vez?

Fundo: Ao usar reverso-i-search em Bash, eu sempre ficar preso uma vez que é terminado em busca-se através da história e não pode encontrar mais jogos. Às vezes eu bati Esc e re-invoke Ctrl + r uma segunda vez, esperando-o para iniciar uma nova pesquisa fresco do fundo da minha história . No entanto, o "ponteiro" ainda parece estar no lugar anterior parou na minha história.

O problema é que eu geralmente não querem esse comportamento. Se eu acertar Esc , e em seguida, re-invoke Ctrl + r , gostaria que para indicar que ele deve voltar a começar de baixo novamente e trabalhar o seu caminho de volta.

Update:. Eu acho que eu deveria ter mencionado que eu estou usando Cygwin no Windows, como nenhum dos trabalhos soluções tão longe mencionado

Update: Esta questão foi marcado como um potencial pergunta duplicado . Esta questão não é uma duplicata, pelos seguintes motivos:

  • A questão alternativo não lida com Cygwin.
  • A questão alternativo não lida com a forma de reset a busca ao seu estado inicial (em vez que se trata de simplesmente ir para trás na pesquisa, bem como para a frente).
Foi útil?

Solução

Eu nunca tentei fazer isso, o padrão quando bater Escape, mas usos festança readline para entrada, que aceita atalhos de teclado Emacs-estilo por padrão, então você pode ir para o fundo usando M-> (geralmente seja combinando Meta / Alt e > ou seguindo a tecla Esc com >).

Se M-> não funciona porque o seu terminal não permite que você digite isso, tente ^G (Controle e G simultaneamente). Essa é a "cancelar" acidente vascular cerebral em Emacs e normalmente trabalha com readline também.

Outras dicas

Meu festa funciona como você está esperando. Talvez bater "Ctrl + C" em vez de "esc" pode ajudar.

Além disso, você pode procurar para a frente usando "Ctrl + S"

editar : obras Ctrl + S se não enviar um "stop" para o seu terminal, ou seja, se "stty -a" lhe dá "-ixon". Você pode alterá-lo "-ixon stty". Graças à @Phil para lembrete.

Got uma resposta confirmou a esta questão.

Para repor ctrl-r, o emacs habituais teclas Ctrl-g pode fazer. Se você quiser reverter ctrl-r por um passo, em vez de sua maneira de trabalhar a partir do fundo de novo, você pode usar ctrl-s . O truque é ctrl-s também é utilizado para interromper o terminal. Então você precisaria atribuir isso a outra chave. Por exemplo, o seguinte será definir pausa para ctrl-w (e manter "currículo" com ctrl-Q).

$ stty STOP ^w

Como alternativa, você também pode totalmente desativar XON / XOFF (currículo / pausa) caracteres de controle de fluxo por

$ stty -ixon -ixoff

Isto irá também Ctrl-S gratuitos-up. Para reativar pausa / currículo, você pode fazer

$ stty ixon ixoff
M-> ... moves to end of history
M-< ... moves to start of history

A sua esquerda tecla alt é mais provável a sua chave Meta.

Homem readline de directivas mais readline.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top