
Я использую Win7 x64, Cygwin 1.7 и zsh (и использую oh-my-zsh). Я новичок в Zsh.
Я просмотрелавтодополнение zsh не работает на cygwinи попробовал решение там, но безуспешно.
Мой стол для крепления:
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)
Как вы видите, я использую /c, /d and /f
для своих дисков. Одной из причин изменить этот /cygdrive
префикс по умолчанию является необходимость поддерживать совместимость с Msysgit
К сожалению, после смены префикса диска автодополнение zsh не работает.
Ввод cd /f/code/Por<tab>
больше не завершает папку или не показывает параметры. Хотя в Bash это работает нормально :(
Если я перейду в cd /f
и затем наберу текст cd Por
— автодополнение сработает.
Как сделать так, чтобы это работало везде?
решение1
Недостатком этого решения является необходимость указывать каждый диск, но мне оно подходит:
zstyle ':completion:*' fake-files '/:c' '/:d'
решение2
У меня была похожая проблема. Если нашли решение: http://blog.en.edaro.net/2014/01/fix-broken-autocompletion-with-zsh-in.html
В моей ситуации проблема возникает только при запуске cygwin от имени другого пользователя, поскольку вы установили cygwin. И это может произойти только тогда, когда этот запущенный пользователь является администратором (не тестировалось с непривилегированным пользователем). Проблема может быть в следующем: как администратор, вы можете "всегда" изменять файлы, даже если chmod запрещает это. compinit не знает об этой ситуации (это приложение unix), но он обнаруживает, что у вас есть доступ на запись в него - в этом и проблема.