2
在zsh中完成avfs伪目录
在某些情况下,如何调整zsh的完成系统以完成“伪造”文件? 更准确地说,AVFS文件系统通过在每个档案旁边创建一个“伪目录”,将档案作为目录公开。默认情况下,它将在其安装点下复制整个目录层次结构~/.avfs。此外,在之下~/.avfs,对于每个档案文件(例如)/tmp/foo.zip,除了档案文件本身之外~/.avfs/tmp/foo.zip,还有一个名为的目录~/.avfs/tmp/foo.zip#,用于显示档案的内容。但是,此额外目录未出现在的列表中~/.avfs/tmp:仅在明确请求时存在。(这类似于某些自动安装器的操作。) mountavfs cd ~/.avfs/tmp/foo.zip\# 当我输入上述命令时,由于没有这样的目录,因此不会foo.zip#在下方显示为~/.avfs/tmp/补全。我怎样才能告诉zsh,只要有一个完整路径$arc匹配~/.avfs/**/*.(tgz|zip)¹ 的文件,它就应该假装存在一个名为的目录${arc}#? (请注意,我希望完成操作可用于对_files或的每次调用_dirs,而不仅是cd命令的_files调用。如果可能的话,我希望不必重复该函数的代码。) ¹ 以及所有其他扩展名