Me gustaría un tcsh'ism que no he podido encontrar: en una línea en blanco sin contenido, quiero presionar la tecla de tabulación y ver el equivalente de un ls. Es decir que quiero
$ <tab>
para hacer otra cosa y luego darme un \ t. He encontrado recursos fantásticos para completar comandos, pero no para este caso base. ¡Cualquier ayuda con esto sería genial! Gracias.
shell
configuration
zsh
kristopolous
fuente
fuente
El comportamiento de Tabal principio de una línea está controlado por el estilo . Sin embargo, solo hay dos comportamientos compatibles:
insert-tab
zstyle ':completion:*' insert-tab false
zstyle ':completion:*' insert-tab true
zstyle ':completion:*' insert-tab pending[=N]
Si solo desea completar los comandos en esa posición,
zstyle ':completion:*' insert-tab true
lo hará. Si desea algo diferente, como enumerar los archivos en el directorio actual, deberá modificarlos_main_complete
.Se discutió un hilo reciente en la lista de trabajadores de zsh
insert-tab
.fuente
_main_complete
es parte del código zsh que implementa la finalización. EstáCompletion/Base/Core/_main_complete
en el árbol de origen, normalmente instalado en una ubicación como/usr/share/zsh/functions/Completion/Base/_main_complete
.-command-
no causa que <Tab> enumere los archivos en el directorio actual. Todo lo que has hecho es restringir las coincidencias para omitir los nombres de los comandos. Pero solo se enumeran las cosas que se completarían en esta posición, por lo que no se incluyen los archivos en el directorio actual (solo directorios y ejecutables dependiendo deautocd
yPATH
).Aquí está la implementación completa de la lista automática de tcsh en zsh, cuando presiona tab en la línea vacía
Aquí está:
Si desea emular tcsh más de cerca, también agregue esto a su .zshrc:
fuente
Escribí este widget zsh que mejora el uso de TAB, no solo en una línea vacía, sino también mientras está escribiendo un comando.
Se puede configurar para anteponer "cd" o "./" en aquellos casos con una variable global.
export TAB_LIST_FILES_PREFIX
fuente