使用 zsh 如何为特定脚本添加自动完成功能,并使用来自文件的自动完成选项?

使用 zsh 如何为特定脚本添加自动完成功能,并使用来自文件的自动完成选项?

我编写了一个小型 shell 脚本,它采用单个命令行参数。

我希望在开始编写参数时能够自动完成,自动完成选择应该来自特定的文本文件。

例如,如果我的文本文件包含

foo
foobar

如果我开始写作my-cli fo并按TAB我喜欢 zsh 向我显示选择foofoobar

欢迎任何指向相关文档或教程的指针。

答案1

我正在努力解决类似的问题,但有点复杂。使用静态自动完成选项文件,以下代码对我有用:

#compdef test

_test_comp(){
 t=($(cat /tmp/file_with_opts))
 _wanted t expl "availavle options" compadd -a t
}

_arguments -C -S  \
 '*:test_autocomplete:_test_comp'

这样脚本test将从中获取选项/tmp/file_with_opts

相关内容