Cygwin では他のドライブの zsh 補完が機能しない

Cygwin では他のドライブの zsh 補完が機能しない

私は 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ドライブに を使用しています。これをデフォルトのプレフィックスから変更する理由の1つは、/cygdriveMsysgitとの互換性を維持するためです。

残念ながら、ドライブプレフィックスを変更した後、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 アプリケーションです) が、書き込みアクセス権があることを検出します。これが問題です。

関連情報