Terminal de Ubuntu, ¿Cómo puedo "tabular" (autocompletar) un nombre de archivo window-cmd-style (opciones de ciclo)?

13

Básicamente, quiero cambiar el terminal de ubuntu funcionalmente, para poder pasar por todas las opciones cuando tabulo (en la fila de la línea de cmd) y no enumerar las opciones como está por defecto.

Estoy usando bash, ubuntu 9.04. Veo algunas posibilidades en ".bashrc", pero ¿debe haber alguien que ya haya resuelto este problema?

Daniel T. Magnusson
fuente
sabes que si presionas Tab dos veces tienes una lista de todas las posibles terminaciones, ¿no?
vava
@vava: Está describiendo el comando de finalizaciones posibles de bash, que generalmente es el comportamiento predeterminado. La pregunta es cómo reemplazar este comportamiento con el comportamiento proporcionado por el comando menu-complete de bash.
las3rjock
@ las3rjock, lo sé, por eso dejé un comentario, no una respuesta. Es posible que OP no conozca esa característica, ya que es mucho mejor que el modo ciclismo.
vava
@vava: El OP describe el comportamiento de compleciones posibles y afirma que quiere reemplazarlo con el comportamiento de menú completo.
las3rjock
@vava, sí sé cómo funciona la terminal, y quiero cambiar este comportamiento tan molesto.
Daniel T. Magnusson

Respuestas:

16

De acuerdo con los comentarios en esta página , poniendo

bind '"\t":menu-complete'

en su .bashrcdebe habilitar la finalización de pestañas cíclicas.

Consulte la sección 8.4.6 del Manual de referencia de Bash para obtener más información.

las3rjock
fuente
Gracias, muy buen hallazgo! - Me encanta el comentario en esa página "Me ha llevado años descubrir que bash admite la finalización de pestañas cíclicas" - ¡ja, el superusuario gana!
Daniel T. Magnusson
¡Gracias! Una vez que esto se implementa, ¿hay una combinación de teclas de anulación para usar momentáneamente el método anterior? Shift + TAB, por ejemplo.
As
0

Algo que me salva la vida es tener un ciclo bash a través de las posibilidades en lugar de mostrar una lista tonta.

Como bash está utilizando readlinepara su autocompletado, agregue las siguientes líneas a~/.inputrc

Una vez que esté satisfecho y ha probado a fondo por debajo de solución para un par de semanas /, días cortar y pegar (no copie!) Los mismos valores de ~/.inputrca /etc/inputrc, que contiene la configuración de todo el sistema, por lo que esta disponible para todos los usuarios de su sistema (incluido invitado).

El codez:

# mappings to have up and down arrow searching through history:
"\e[A": history-search-backward
"\e[B": history-search-forward
# mappings to have left and right arrow go left and right: 
"\e[C": forward-char
"\e[D": backward-char

# mapping to have [Tab] and [Shift]+[Tab] to cycle through all the possible completions:
"\t": menu-complete
"\e[Z": menu-complete-backward

luego exitsu terminal (o terminal remota como masilla) y ábralo nuevamente ...

Ejemplos:

  1. Cuando tiene 3 archivos: file1, file2y file3, y escribe:

    e fTabTabTab

    pasará por:

    e file1
    e file2
    e file3

    y cuando quieras volver, solo presiona Shift+Tab

  2. Cuando escribes:

    very-complicated-command with lots of command line parameters

    y la próxima vez que necesite el mismo comando, simplemente escriba:

    very

    y te escribirá:

    very-complicated-command with lots of command line parameters

¡Esto te ahorrará un montón de tiempo en bash! ;-)

Fuente

Fabby
fuente