
私は 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 アプリケーションです) が、書き込みアクセス権があることを検出します。これが問題です。