zsh - 将当前命令行传递给 zsh 自动完成函数

标签 zsh zsh-completion

我跟踪我的计费时间。每个项目都有一个描述和一些针对不同客户、项目等的标签。

最近我为这些标签添加了 zsh 补全功能。这就是我现在的 zsh 自动完成文件中的内容:

_arguments "*:tags:( $(cat timetrackingdata | extract_tags.py ) )"

Python 脚本 extract_tags.py 提取我的 timetrackingdata 文件中的所有标签并将它们返回给 zsh。

我希望能够限制命令行上已有标签返回的标签

因此,如果我已经将标签 client1 放在命令行上,我想将此标签传递给 extract_tags.py ,以便它可以过滤其输出,并且仅返回同样具有标签 client1 的项目上出现的标签。

最佳答案

我认为您正在寻找的是 $words 变量。这是在命令行上指定的所有单词的数组,它神奇地存在于完成函数中。

记录在哪里? man zshcompsys 中有一些传递的引用资料,如果我没有专门寻找它们,我可能会错过它们。然而,我发现它在this website上更清楚地突出显示。 .

关于zsh - 将当前命令行传递给 zsh 自动完成函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14684322/

相关文章:

zsh - zsh 中的多点路径,如 `cd ....`

python - 如何防止 Python 脚本中的 ANSI 转义序列干扰我的 zsh RPROMPT 和光标位置?

linux - zsh 在不创建文件的情况下给出文件参数 - 语法?

bash - ZSH 从脚本提示完成(像 BASH 的 read -e)

linux - 自定义 ZSH 波浪号扩展

zsh - 如何在 zsh 中自定义当前选定(突出显示)完成的外观?

bash - 在所有直接子目录中执行命令

shell - zsh command not found : zeus, mailcatcher等?

flutter - zsh:找不到命令: flutter

autocomplete - zsh 函数 : forward completion to subfunction