library instalar instalador bash cygwin readline

bash - instalar - lynx cygwin



Control-r reverse-i-search en bash: ¿cómo "reinicia" la búsqueda en Cygwin? (4)

Mi bash funciona como lo esperas. Tal vez presionar "ctrl + C" en lugar de "esc" puede ayudar.

Además, puede buscar hacia adelante usando "ctrl + s"

edit : ctrl + s funciona si no envía un "stop" a su terminal, es decir, si "stty -a" le da "-ixon". Puede cambiarlo por "stty -ixon". Gracias a @Phil por recordatorio.

Pregunta: ¿Cómo le dice a Ctrl + r reverse-i-search que se "resetee a sí mismo" y comience a buscar desde el final de su historial todo el tiempo?

Antecedentes: cuando uso reverse-i-search en Bash, siempre me quedo atascado una vez que se termina de buscar en el historial y no puede encontrar más coincidencias. A veces presiono Esc y vuelvo a invocar Ctrl + r una segunda vez, esperando que comience una búsqueda nueva desde el final de mi historial. Sin embargo, el "puntero" todavía parece estar en el lugar anterior que dejó en mi historia.

El problema es que generalmente no quiero este comportamiento. Si presiono Esc , y luego vuelvo a invocar Ctrl + r , me gustaría que indique que debe volver a comenzar desde abajo y volver a subir.

Actualización: Creo que debería haber mencionado que estoy usando Cygwin en Windows, ya que ninguna de las soluciones mencionadas hasta ahora funciona.

Actualización: esta pregunta fue marcada como una posible pregunta duplicada . Esta pregunta no es un duplicado por las siguientes razones:

  • La pregunta alternativa no trata con Cygwin.
  • La pregunta alternativa no trata de cómo restablecer la búsqueda a su estado inicial (en cambio, se trata simplemente de ir hacia atrás en la búsqueda, así como hacia adelante).

Nunca intenté hacer esto el valor predeterminado al presionar Escape, pero bash usa readline para entrada, que acepta combinaciones de teclas al estilo Emacs por defecto, así que puedes ir al fondo usando M-> (generalmente combinando Meta / Alt y > o siguiendo la tecla Escape con > ).

Si M-> no funciona porque su terminal no le permite ingresar eso, intente con ^G (Control y G simultáneamente). Ese es el trazo "cancelar" en Emacs y generalmente también funciona con readline .


M-> ... moves to end of history M-< ... moves to start of history

Su clave alt izquierda es probablemente su tecla Meta.

Hombre readline para más directivas readline.


Tengo una respuesta confirmada a esta pregunta.

Para reiniciar ctrl-r, la tecla usual de emacs ctrl-g puede hacer. Si quieres invertir ctrl-r en un paso, en lugar de volver a subir desde abajo, puedes usar ctrl-s . El truco es ctrl-s también se utiliza para pausar el terminal. Entonces necesitarías asignar eso a otra clave. Por ejemplo, lo siguiente establecerá pause para ctrl-w (y mantendrá "resume" con ctrl-q).

$ stty STOP ^w

Alternativamente, también puede desactivar por completo los caracteres de control de flujo XON / XOFF (reanudar / pausar)

$ stty -ixon -ixoff

Esto también liberará ctrl-s. Para volver a habilitar la pausa / reanudar, puede hacer

$ stty ixon ixoff