Autocomplete 在zsh之外使用zsh补全

Autocomplete 在zsh之外使用zsh补全,autocomplete,zsh,Autocomplete,Zsh,在zsh之外使用zsh补全的最佳方式是什么?我知道我可以用自定义函数重新定义compadd内置,并解析其选项,但有更好的方法吗 我想在基于zsh完成系统的Vim中添加shell脚本的omni完成。2004年8月23日zsh邮件列表上也提出了同样的问题:。至少我相信这是同一个问题。如果我错了,请纠正我 基本上,bashshell用于行编辑,但是zsh 这个问题询问zle是否可以用于命令行程序的输入,而不必从头开始编写 这个问题有两个答案。有人说: “这实际上相对容易做到。有关工作示例,请参阅 zs

在zsh之外使用zsh补全的最佳方式是什么?我知道我可以用自定义函数重新定义compadd内置,并解析其选项,但有更好的方法吗


我想在基于zsh完成系统的Vim中添加shell脚本的omni完成。

2004年8月23日zsh邮件列表上也提出了同样的问题:。至少我相信这是同一个问题。如果我错了,请纠正我

基本上,bashshell用于行编辑,但是zsh

这个问题询问zle是否可以用于命令行程序的输入,而不必从头开始编写

这个问题有两个答案。有人说:

“这实际上相对容易做到。有关工作示例,请参阅 zsh发行版中的函数/Misc/nslookup。“

另一个答复来自最初的询问者,它说:

“如果'preexec'可以访问缓冲区,则写入已编辑的命令 行可以写在任何地方,但因为缓冲区只能访问 在完成小部件内部,这应该通过小部件完成, 替换“接受行”或类似的内容。”


希望这能有所帮助。

亲爱的$Dedity,请告诉我你知道如何做到这一点。我希望zstyles无处不在。@chiggsy我所知道的是,如果我花大量时间编写覆盖各种内置命令的黑客(一个
compadd
是不够的)并重新实现由它们完成的功能,我就可以完成这项工作。这不是我愿意花时间在的事情。所以。。。澄清问题:我是否正确理解您的想法,即您要求通过某种方式访问zsh的交互式完成系统,例如,vim中的命令提示符?那似乎。。。比如vim需要修改才能链接到它。。。也许它可以被称为一个库,zsh和vim都可以使用它???@lindes。如果有一个C库提供完成访问,那么可以创建与该库交互的python模块和与该模块交互的vimL+python插件,因此不需要修改vim。显然,没有这样的库,也没有“标准”的方法来实现这一点,尽管将zsh拆分为适合创建自定义shell的zle库(当然,具有覆盖完成变量的显示功能)和UI是绝对受欢迎的,因为它不仅可以用于获取完成变量,但作为readline更好的替代品。@ZyX:听起来确实很不错。我希望您和/或其他人能够找到实现这一目标的动力。:)