![Cygwin では他のドライブの zsh 補完が機能しない](https://rvso.com/image/1346552/Cygwin%20%E3%81%A7%E3%81%AF%E4%BB%96%E3%81%AE%E3%83%89%E3%83%A9%E3%82%A4%E3%83%96%E3%81%AE%20zsh%20%E8%A3%9C%E5%AE%8C%E3%81%8C%E6%A9%9F%E8%83%BD%E3%81%97%E3%81%AA%E3%81%84.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
ドライブに を使用しています。これをデフォルトのプレフィックスから変更する理由の1つは、/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 アプリケーションです) が、書き込みアクセス権があることを検出します。これが問題です。