![Автодополнение zsh не работает под Cygwin для других дисков](https://rvso.com/image/1346552/%D0%90%D0%B2%D1%82%D0%BE%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5%20zsh%20%D0%BD%D0%B5%20%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D1%82%20%D0%BF%D0%BE%D0%B4%20Cygwin%20%D0%B4%D0%BB%D1%8F%20%D0%B4%D1%80%D1%83%D0%B3%D0%B8%D1%85%20%D0%B4%D0%B8%D1%81%D0%BA%D0%BE%D0%B2.png)
Я использую 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), но он обнаруживает, что у вас есть доступ на запись в него - в этом и проблема.