我在arch-linux上安装了zsh补全。VBoxManage
命令的完成似乎很好,但vboxmanage
不行(即,只完成本地目录中的文件)。VBoxManage
和vboxmanage
都是指向VBox
可执行文件的符号链接。
我的虚拟框完成定义似乎有的第一行
#compdef VBoxManage=vboxmanage VBoxHeadless=vboxheadless
看起来像某种别名?但它不起作用。
我有一个解决方案,就是将上面的行改为
#compdef VBoxManage=vboxmanage vboxmanage=vboxmanage VBoxHeadless=vboxheadless vboxheadless=vboxheadless
这似乎很冗长,有一个指定模式的选项,但像这样别名命令的正确方法是什么?
compdef _VBoxManage vboxmanage
compdef _VBoxHeadless vboxheadless
在~/.zshrc
中,指定命令的完成函数是正确的方法。出于明显的原因,不建议编辑源代码中的实际函数。