La finalización de zsh no funciona en Cygwin para otras unidades

La finalización de zsh no funciona en Cygwin para otras unidades

Estoy en Win7 x64, Cygwin 1.7 y zsh (y uso oh-my-zsh). Zsh novato aquí.

he revisadoEl autocompletado de zsh no funciona en cygwiny probé la solución allí pero no tuve suerte.

Mi mesa de montaje:

 C: on /c type ntfs (binary,posix=0,user,noumount,auto)
 D: on /d type ntfs (binary,posix=0,user,noumount,auto)
 F: on /f type ntfs (binary,posix=0,user,noumount,auto)

Como puede ver, lo estoy usando /c, /d and /fpara mis discos. Parte del motivo para cambiar este /cygdriveprefijo predeterminado es mantener la compatibilidad con Msysgit

Lamentablemente, después de cambiar el prefijo de la unidad, la finalización de zsh no funciona

escribir cd /f/code/Por<tab>ya no completa la carpeta ni presenta las opciones. Aunque funciona bien en Bash :(

Si ingreso cd /fy luego escribo cd Por, la finalización funciona.

¿Cómo hago para que funcione en todas partes?

Respuesta1

Esta solución tiene el inconveniente de tener que especificar todas y cada una de las unidades, pero a mí me funciona:

zstyle ':completion:*' fake-files   '/:c' '/:d'

Respuesta2

Tuve un problema similar. Si encuentra una solución: http://blog.en.edaro.net/2014/01/fix-broken-autocompletion-with-zsh-in.html

En mi situación, el problema ocurre solo cuando ejecuta cygwin como otro usuario mientras instaló cygwin. Y solo puede ocurrir cuando este usuario en ejecución es un administrador (no probado con un usuario sin privilegios). El problema puede ser: como administrador, "siempre" puede modificar archivos, incluso si chmod no lo permite. Compinit no conoce esta situación (es una aplicación Unix), pero descubre que tiene acceso de escritura; ese es el problema.

información relacionada