Bagaimana saya bisa men-tweak sistem penyelesaian zsh untuk menyelesaikan file "palsu" dalam beberapa keadaan?
Lebih tepatnya, sistem file AVFS memperlihatkan arsip sebagai direktori dengan membuat "direktori palsu" di sebelah setiap arsip. Secara default, ini mereplikasi seluruh hierarki direktori di bawah titik pemasangannya ~/.avfs. Selanjutnya, di bawah ~/.avfs, untuk setiap file arsip seperti /tmp/foo.zip, selain file arsip itu sendiri ~/.avfs/tmp/foo.zip, ada direktori yang disebut ~/.avfs/tmp/foo.zip#yang memaparkan konten arsip. Namun direktori tambahan ini tidak muncul dalam daftar ~/.avfs/tmp: hanya ada ketika diminta secara eksplisit. (Ini mirip dengan bagaimana beberapa automounters beroperasi.)
mountavfs
cd ~/.avfs/tmp/foo.zip\#
Ketika saya mengetik perintah seperti di atas, foo.zip#tidak muncul sebagai penyelesaian di bawah ~/.avfs/tmp/, karena tidak ada direktori seperti itu. Bagaimana saya bisa memberi tahu zsh bahwa setiap kali ada file yang path lengkapnya $arccocok ~/.avfs/**/*.(tgz|zip)¹, ia harus berpura-pura ada direktori yang dipanggil ${arc}#?
(Perhatikan bahwa saya ingin penyelesaiannya berfungsi dengan setiap panggilan _filesatau _dirs, tidak hanya untuk cdperintah. Saya lebih suka tidak harus menduplikasi kode _filesfungsi, jika mungkin.)
¹ dan semua ekstensi lainnya
/path/to/footerlihat sebagai ~/.avfs/path/to/foo.
avfs. Jika itu mempresentasikan #entri direktori default untuk file apa pun yang cocok dengan string yang didukungnya, atau bahkan sihir menguji file dalam direktori untuk apa yang diperlukan untuk memiliki #entri, maka penyelesaiannya hanya akan berfungsi. Saya kira akan ada hit kinerja untuk sesuatu seperti findsekarang akan menjelajah melalui file terkompresi.