![zsh 完成功能在 Cygwin 下對其他磁碟機不起作用](https://rvso.com/image/1346552/zsh%20%E5%AE%8C%E6%88%90%E5%8A%9F%E8%83%BD%E5%9C%A8%20Cygwin%20%E4%B8%8B%E5%B0%8D%E5%85%B6%E4%BB%96%E7%A3%81%E7%A2%9F%E6%A9%9F%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.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 應用程式),但它發現您對其具有寫入存取權限 - 這就是問題所在。