Pregunta

Lo que quiero:

cd c/ra<tab> se completa ~/code/rails-app y cd c/<tab> Muestra una lista de DIR dentro de ~/code


Lo que tengo actualmente:

c ra<tab> se completa c rails-app Si tengo un directorio ~/code/rails-app y c <tab> Muestra una lista de DIR dentro de ~/code

Teniendo esto en mi .zshrc:

c() { cd ~/code/$1; }
_c() { _files -W ~/code -/; }
compdef _c c


Esta herramienta parece prometedora: https://github.com/flavio/jump Pero me gustaría algo más liviano.

¿Fue útil?

Solución

La finalización de las pestañas como ha descrito, al menos para directorios, debe ser factible por zsh sin la necesidad de escribir un zsh función.

Este enlace, por ejemplo, señala que escribir /u/l/b después pestaña se expande /usr/local/bin en el aviso.

Esto funciona para mí, si hago un directorio ~/code/rails-app tal:

zsh% ls ~/code
another-app       another-dir rails-app
zsh% ls ~/code/rails-app
one two

después:

zsh% cd c/ra<TAB> # this expands to 'cd code/rails-app'
zsh% cd c/<TAB><TAB> # Double tab, one to expand "c" to "code", 
zsh% #               # second gives me the zsh-completion menu

No puedo señalar que zsh Opción Esta es: estoy usando un muy bien modificado ~/.zshrc y fragmentos de oh-my-zsh. Este puede que ser funcionalidad dada por zsh sin necesidad de ser habilitado; Si no, detalles en el primer enlace o en algún lugar de oh-my-zsh o incluso alguna versión del manual ZSH debería ayudar. (Encuentro el manual un poco ... abrumador, por decir lo menos).

No creo que necesite escribir una función para lograr este comportamiento - zsh Definitivamente es capaz de hacerlo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top