finalización de la pestaña izquierda en bash o zsh

finalización de la pestaña izquierda en bash o zsh

Cuando uso la función de finalización de tabulación estándar en bash o zsh, escribo la primera parte de un nombre de archivo o ruta y luego presiono para completar la palabra. Esto funciona bien a menos que esté en un directorio lleno de archivos donde todas las variaciones en los nombres de archivos estén al final de la palabra, por ejemplo, un directorio lleno de archivos con marca de tiempo que comienzan con el mismo prefijo:

foo-20120701124501.log
foo-20120701124531.log
foo-20120701124601.log
foo-20120701124631.log
foo-20120701124701.log
foo-20120701124731.log

En este caso, si escribo foo<tab>obtendré foo-20120701124... puedo tabular nuevamente y ver todos los archivos... Tendría que escribir los siguientes 3 caracteres para obtener un nombre de archivo único.

Me pregunto si hay alguna manera de escribir, por ejemplo, 4731.logy luego completar el comienzo de la palabra. Supongo que esto sería difícil en bash, porque la finalización de bash utiliza $COMP_CWORDy $COMP_KEYpara su finalización programable, y por la forma en que lo estoy leyendo, no creo que eso permita completar palabras hacia la izquierda. No sé lo suficiente sobre la finalización dentro de zsh para saber dónde empezar a buscar en las páginas del manual.

Respuesta1

Esto solo funcionará si hay un comando inicial antes de presionar la pestaña. Probablemente no sea lo que estás buscando, pero lo único que pude obtener fueron los resultados deseados. El siguiente ejemplo debería funcionar en su caso. Solo necesita estar al final de *4731.log y presionar la pestaña una vez. Si es único, se completará automáticamente.

ls *4731.log

información relacionada