¿Completar la pestaña de BASH completar la primera coincidencia?

11

¿Hay alguna manera de hacer que BASH complete la primera coincidencia cuando presiono TAB, algo así como el símbolo del sistema de Windows?

(Todavía debería mostrar la lista de coincidencias, pero debería recorrerlas cuando sigo presionando la tecla).

es decir, el objetivo aquí es poder completar cualquier coincidencia solo con la tecla TAB, con suficientes presiones, como en Windows.

usuario541686
fuente

Respuestas:

15

Agregue lo siguiente a su .inputrcarchivo (la ubicación exacta varía entre sistemas):

"\C-i": menu-complete

Esto asigna TAB a menu-complete, que completa automáticamente la primera coincidencia.

Luego agregue (o descomente) show-all-if-ambiguous, esto muestra la lista de posibles finalizaciones en la primera pulsación TAB.

Alternativamente, puede configurar el menú completo por sesión (sin editar .inputrc) haciendo

bind '"\C-i" menu-complete'
Philomath
fuente
No. Eso definitivamente no se parece al símbolo del sistema de Windows. :-)
user541686
@Mehrdad: editado, espero tenerlo ahora.
Philomath
+1 casi !!! Es lo que quiero, pero ¿hay alguna forma de hacerlo y mostrar el menú si es ambiguo? (Se podría pedir demasiado, lo sé, pero espero que sea posible.)
user541686
@Mehrdad: si es lo que quieres, acéptalo, esto ayuda a las personas a obtener las respuestas correctas rápidamente. En cuanto a su nueva solicitud para hacer ambas cosas a la vez, no creo que sea posible, pero ¿quién sabe? ... Sin embargo, puede vincular menu-completea otra secuencia de teclas, como "\M-s"for Meta+S, para que pueda elegir a voluntad.
Philomath
1
¿Sabes que? Parece que en realidad está haciendo exactamente lo que quiero: primero mostrar el menú y luego recorrer las opciones. No creo haber visto esto en la primera computadora que probé (tal vez no estaba prestando atención), ¡pero parece que funciona perfectamente! :) (Editar: Parece que necesita tanto esta configuración como show-all-if-ambiguous estar
activada
4

Aunque no sé cómo hacer que esta funcionalidad funcione con bash, zsh viene con la configuración con exactamente lo que desea de forma predeterminada. Echa un vistazo a oh-my-zsh y zsh .

zsh tiene la mayoría de las características de bash con algunas funciones adicionales listas para usar, como la capacidad de navegar con solo pestañas e ingresar.

La mayoría de las distribuciones de Linux vienen con un paquete para instalar zsh.

Chris Knadler
fuente
1
... oh mi zsh !! Eso es interesante, lo echaré un vistazo ... puede o no hacer lo que necesito.
user541686
Me alegro de poder ayudar. ¿Qué distribución estás usando? Puedo darle una respuesta más profunda con una guía sobre cómo instalar zsh y oh my zsh.
Chris Knadler
+1 Instalé zsh, ¡parece increíble! Si no encuentro ningún problema, también podría aceptar esto, ¡gracias! :) (Estoy usando Ubuntu por cierto)
user541686
Impresionante, si solo ejecutó apt-get install zsh y luego ejecutó el instalador automático de oh-my-zsh aquí , debería estar listo. Avíseme si necesita ayuda para configurarlo.
Chris Knadler