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 $arc
cocok ~/.avfs/**/*.(tgz|zip)
¹, ia harus berpura-pura ada direktori yang dipanggil ${arc}#
?
(Perhatikan bahwa saya ingin penyelesaiannya berfungsi dengan setiap panggilan _files
atau _dirs
, tidak hanya untuk cd
perintah. Saya lebih suka tidak harus menduplikasi kode _files
fungsi, jika mungkin.)
¹ dan semua ekstensi lainnya
/path/to/foo
terlihat 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 find
sekarang akan menjelajah melalui file terkompresi.