zsh autocomplete el directory

Soy nuevo en zsh y una cosa que hago bastante a menudo es ejecutar scripts de shell que están en un directory mío llamado Scripts. No siempre estoy dentro del directory de Scripts, sin embargo … Puedo estar en $ HOME y por lo tanto me gustaría simplemente escribir Sc<Tab> y hacer que se autocomplete en Scripts/ y luego poder autocomplete qué script quiero correr desde allí, por supuesto …

Sin embargo, zsh no parece hacer esto por defecto. Solo autocompleteá los nombres de directory si he escrito ls o cd . Si estoy tratando de autocomplete un directory primero, simplemente no lo hará.

¿Hay alguna manera de cambiar este comportamiento?

Editar: me di count de que podía hacer ./Sc<Tab> y se autocompleteía para mí. Supongo que estoy acostumbrado a no tener que escribir ./ antes de algo para que se autocomplete, por lo que aún me gustaría saber si esto es posible en zsh, pero esta es una solución aceptable por ahora.

No es exactamente lo que pediste pero utilizo s para ejecutar scripts. Entonces, por ejemplo, si tengo un file ~ / Scripts / run-stuff.sh, puedo escribir s run-stuff.sh y ejecutará el script. También completará la tabulación del nombre del script. Lo único que no hace es manejar subdirectorys en el directory de scripts.

 # Completion for s (scripts) _s_comp() { if [ $OS = "mac" ]; then local LS=gls; else local LS=ls; fi reply=(`$LS --ignore-backups $HOME/Scripts/`); } compctl -K _s_comp s 

Es posible que también necesite un alias como alias s="$HOME/Scripts

Editar: tenga en count que esto funcionará independientemente del directory en el que se encuentre actualmente.

Puede agregar esta instrucción a su ~/.zshrc :

 setopt autocd 

También tiene un efecto secundario beneficioso de no tener que escribir cd para cambiar directorys. 🙂