bounty将在4天后过期。回答此问题可获得+500声望奖励。Sridhar Ratnakumar希望引起更多人对此问题的关注:我想要一个简单的解决方案,特别是在macOS zsh的这个简单的用例。
我有一个名为,
的脚本,它接受一组有限的子命令。假设这组子命令是(foo bar qux)
。因此,以下是此脚本可接受的CLI调用:
, foo
, bar
, qux
(Each以上的可以在右边接受进一步的可选参数)。
这个脚本在macOS上运行的 * 最少 * zsh完成代码是什么?这样,当我键入,
,然后键入<TAB>
时,shell将自动完成这三个选项:foo酒吧和qux。
1条答案
按热度按时间sycxhyv71#
以下是将
zsh
补全添加到,
命令的最少步骤:1.启用
compinit
1.启用
compdef
1.定义一个完成函数,用于从/用给定的一组值完成第一个参数。
1.将前面的函数
_,
设置为,
命令的完成函数:现在,如果键入CommaSpaceTab,
zsh
应输出:旁边
可以为每个子命令
bar
/foo
/qux
添加进一步的完成;请看这个文档示例。