如何以编程方式访问zsh补全?


8

zsh具有完成系统,可通过按Tab键激活:

llama@llama:~$ git st<Tab>
Completing main porcelain command
stash      -- stash away changes to dirty working directory
status     -- show working-tree status
Completing plumbing internal helper command
stripspace -- filter out empty lines

我能弄清楚的是,这来自脚本/usr/share/zsh/functions/Completion/Unix/_git,其中_git调用了完成命令。

假设我知道补全函数的名称(例如_git),那么如果输入特定的字符串并按Tab键,如何得到输出结果呢?本质上,我正在尝试输入ex。git st并获得上面的输出(通过脚本以编程方式)。

还有许多其他现有的问题,关于这个庆典,但我还没有发现任何解释如何与zsh来实现这一目标。


Answers:


2

这可以通过使用zsh-capture-completion完成。存储库的README.md文件提供了几个示例:

capture.zsh 'vim -'
capture.zsh 'vim --'
capture.zsh 'vim --r'
capture.zsh 'echo *('
capture.zsh 'scp hostname:'

请注意,程序包本身声明它是一种概念证明,因此在其执行中可能包含错误。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.