zsh 完成功能在 Cygwin 下對其他磁碟機不起作用

zsh 完成功能在 Cygwin 下對其他磁碟機不起作用

我使用的是 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 應用程式),但它發現您對其具有寫入存取權限 - 這就是問題所在。

相關內容