Control-marcha atrás R-i-búsqueda en bash: ¿cómo “reset” en la búsqueda de Cygwin?
Pregunta
Pregunta: ¿Cómo se le dice a Ctrl + r Reverse-i-búsqueda de "reiniciar en sí" y empieza a buscar desde el fondo de su historial cada vez?
Antecedentes: Cuando se utiliza revertir-i-búsqueda en Bash, que siempre se queda bloqueado una vez que se termine de buscar a través de la historia y no puedo encontrar más partidos. A veces me golpeo Esc y volver a invocar Ctrl + r una segunda vez, esperando que iniciar una nueva búsqueda fresca desde el fondo de mi historia . Sin embargo el "puntero" todavía parece estar en el lugar anterior en que se detuvo en mi historia.
El problema es, por lo general no quiero que este comportamiento. Si lo golpeo Esc , y luego volver a invocar Ctrl + r , me gustaría que para indicar que debe volver a empezar desde el fondo de nuevo y trabajar su camino hacia arriba.
Actualización:. Creo que debería haber mencionado que estoy usando Cygwin en Windows, ya que ninguno de los llamados ahora mencionado trabajo soluciones
Actualización: Esta pregunta fue marcado como un potencial pregunta duplicado . Esta pregunta no es un duplicado por las siguientes razones:
- La pregunta alternativo no se ocupa de Cygwin.
- La pregunta alternativo no se ocupa de cómo restablecer la búsqueda a su estado inicial (en lugar simplemente se trata de ir hacia atrás en búsqueda, así como hacia adelante).
Solución
Nunca he intentado hacer este defecto al golpear escapar, pero Bash emplea readline
para la entrada, que acepta combinaciones de teclas al estilo Emacs por defecto, por lo que puede ir a la parte inferior con M->
(por lo general, ya sea mediante la combinación de Meta / Alt y >
o siguiendo la tecla escape con >
).
Si M->
no funciona debido a su terminal no le permite entrar en eso, tratar ^G
(Control y G
al mismo tiempo). Esa es la carrera "cancelar" en Emacs y por lo general trabaja con readline
también.
Otros consejos
Mi fiesta trabaja como usted está esperando. Tal vez de pulsar "Ctrl + C" en lugar de "esc" pueden ayudar.
Además, puede buscar hacia adelante usando la tecla "Ctrl + s"
editar : obras ctrl + s si no envía un "stop" a su terminal, es decir, si "-a stty" da "-ixon". Puede cambiarlo por "-ixon stty". Gracias a @Phil para el recordatorio.
¿Tienes una respuesta a esta pregunta confirmado.
Para restablecer ctrl-r, las emacs habituales tecla ctrl-g pueden hacer. Si quieres de nuevo para invertir Ctrl-R en un paso, en lugar de continuar hacia arriba desde la parte inferior, puede utilizar Ctrl-s . El truco es ctrl-s también se utiliza para hacer una pausa en el terminal. Por lo que tendría que asignar a otra tecla. Por ejemplo, el siguiente configurará pausa para ctrl-w (y mantener "hoja de vida" con ctrl-q).
$ stty STOP ^w
Alternativamente, también se puede desactivar totalmente XON / XOFF (hoja de vida / pausa) fluir caracteres de control por
$ stty -ixon -ixoff
Esto también libres en marcha ctrl-s. Para volver a activar la pausa / reanudar, puede hacerlo
$ stty ixon ixoff
M-> ... moves to end of history
M-< ... moves to start of history
Su tecla alt izquierda es más probable su clave Meta.
El hombre readline readline para buscar más directivas.