Atajo único para buscar hacia adelante después de la búsqueda inversa Ctrl-R

13

Uso Ctrl+ Rtodo el tiempo, pero a menudo termino pasando el comando que busco, ya que lo presiono muy rápido.

Para reenviar búsqueda, Ctrl+ Sse puede utilizar siempre y cuando no se usa el primer terminal (Konsole en mi caso, en el que stty -ixonen ~/.bashrcla fija).

Sin embargo, tengo que presionarlo dos veces: una vez que parece entrar i-searchdespués de estar en reverse-i-searchmodo y una segunda vez para retroceder realmente.

¿Hay alguna forma de eliminar la necesidad de presionar el acceso directo dos veces?

jozxyqk
fuente
3
Al igual que con Ctrl-R, el primer Ctrl-S espera a que se busque una cadena. El segundo reutiliza la misma cadena de búsqueda que usó antes (con Ctrl-R en su situación). No conozco ninguna forma de evitar esos dos pasos. readlinecarece de la función "buscar la misma cadena al revés".
xhienne

Respuestas:

11

Aquí hay un enfoque diferente. Si se siente cómodo con algunos comandos básicos de edición de vi, bash admite un modo vi para la edición de línea de comandos. Si realmente odias vi, no te gustará esto. Pero si puede tolerarlo, puede encontrarlo preferible y con menos pulsaciones de teclas.

set -o vi

La búsqueda de historial funciona así:

  • Esc para ingresar al modo de comando
  • / para comenzar la búsqueda
  • Escriba el texto de la cadena de búsqueda
  • Enter para realizar la búsqueda
  • n para ir al próximo partido
  • N para volver al partido anterior
  • i para volver al modo de inserción
  • Enter para ejecutar el comando
MikeLRoy
fuente
Los equivalentes de estilo vi a Ctrl-R y Ctrl-S son ny N, respectivamente. Y no requieren tocar dos veces. ¡Intrigante!
Nathaniel M. Beaver
2

Aparentemente, la búsqueda del historial de Bash requiere una primera pulsación del acceso directo para hacerle saber en qué dirección está buscando, luego una segunda pulsación para realizar realmente la búsqueda. No creo que sea posible cambiar la forma en que funciona sin modificar el código fuente.

Sin embargo, puede instalar hstr (https://github.com/dvorka/hstr) que presenta un cuadro de sugerencias con opciones de búsqueda avanzadas para ver, navegar, buscar y administrar fácilmente su historial de comandos:

ingrese la descripción de la imagen aquí

dr01
fuente