Bazı durumlarda “sahte” dosyaları tamamlamak için zsh'nin tamamlama sistemini nasıl ayarlayabilirim?
Daha doğrusu, AVFS dosya sistemi her arşivin yanında bir "sahte dizin" oluşturarak arşivleri dizin olarak gösterir. Varsayılan olarak, tüm dizin hiyerarşisini bağlama noktasının altında çoğaltır ~/.avfs. Ayrıca, ~/.avfsarşiv dosyası gibi her arşiv dosyası /tmp/foo.zipiçin arşivin içeriğini gösteren ~/.avfs/tmp/foo.zipbir dizin vardır ~/.avfs/tmp/foo.zip#. Ancak bu fazladan dizin aşağıdaki listede görünmemektedir ~/.avfs/tmp: yalnızca açıkça talep edildiğinde bulunur. (Bu, bazı otomatik sayaçların nasıl çalıştığına benzer.)
mountavfs
cd ~/.avfs/tmp/foo.zip\#
Yukarıdaki gibi bir komut yazdığımda , böyle bir dizin olmadığı için foo.zip#altında tamamlama olarak görünmüyor ~/.avfs/tmp/. Zsh'ye, tam yolu ¹ ile $arceşleşen bir dosya ~/.avfs/**/*.(tgz|zip)olduğunda, adı verilen bir dizin olduğunu varsayması gerektiğini nasıl söyleyebilirim ${arc}#?
(Tamamlamanın , yalnızca komut için değil, her çağrıyla _filesveya istemesiyle çalışmasını istediğimi unutmayın . Mümkünse , işlev kodunu çoğaltmamam gerektiğini tercih ederim .)_dirscd_files
¹ ve tüm uzantıları
/path/to/foogörünür ~/.avfs/path/to/foo.
avfs. #Desteklediği dizelerle eşleşen herhangi bir dosya için varsayılan dizin girişini sunmuşsa veya sihir bile bir #giriş olması gereken dosyaları bir dizindeki dosyaları sınamışsa, tamamlanma işe yarayacaktır. Sanırım findşimdi sıkıştırılmış dosyalar arasında dolanacak gibi bir şey için bir performans vurgusu olacaktı.