我使用 afuse 通过 sshfs 将其他主机自动挂载到我的本地文件系统。像这样:
afuse -o timeout=30 -o mount_template=sshfs -C %r:/ %m -o unmount_template=fusermount -u -z %m ~/remote/
这很好用,但我希望能够使用我的 ~/remote 目录自动完成/TAB 命令。Zsh 可以理解地认为 ~/remote 是空的,因为 afuse 是一个神奇的虚拟 FUSE 文件系统。一旦我手动键入主机,子目录就可以正常工作。例如 ~/remote/host/[TAB] 工作正常。
大多数 zsh compdef 教程都专注于为您的自定义命令构建自定义完成程序。这不是我想要的。
我一直在尝试使用 compdef 将该特定目录的完成覆盖到我的 hosts 文件中(使用内置的 _hosts 完成功能),但据我了解,compdef 在每个命令的基础上工作。我希望我的完成者处理所有试图在该目录上执行正常文件/目录完成的命令。
感觉就像它是如此基本,它是一个单线,只要我知道如何。我怎样才能做到这一点?