我使用afuse和sshfs将其他主机挂载到本地文件系统。操作如下:
afuse -o timeout=30 -o mount_template=sshfs -C %r:/ %m -o unmount_template=fusermount -u -z %m ~/remote/
这个方法很好用,但我希望能够使用~/remote目录来自动补全/TAB命令。由于afuse是一个神奇的虚拟FUSE文件系统,因此Zsh理所当然地认为~/remote是空的。一旦我手动输入了主机名,子目录就可以正常工作了。例如,~/remote/host/[TAB]可以正常工作。
大多数zsh compdef教程都专注于为自定义命令构建自定义补全器。这不完全是我想要的。
我一直在试图使用compdef来覆盖特定目录的补全器以使用我的hosts文件(使用内置的_hosts补全函数)。但据我所知,compdef是基于每个命令的。我希望我的补全器对所有尝试在该目录上进行普通文件/目录完成的命令都能起作用。
感觉这非常基础,只需要一行代码,只要我知道怎么做。我该如何做到这一点?