如何覆盖现有的zsh键盘自动完成?

3
我希望让zsh能够自动补全yast2中的模块(一个OpenSuSE控制面板),但似乎已经有一些定义好的内容了。我可以运行:
compctl -k "(hello world)" nonexistantprogram

只是很好,但是

compctl -k "(hello world)" yast2

完全不起作用。某些yast2的东西似乎已经被定义了,即“-”选项:--fullscreen,--geometry,--list [submodules]等。

即使对于那些不使用OpenSuSE的人:是否有任何标志可以使compctl覆盖先前的设置?非常感谢您的帮助。

1个回答

3

很可能,您的系统正在使用较新的compsys系统而不是较旧的compctl系统。请参阅man zshcompsysman zshcompwid(以及man zshcompctl)。

yast2的完成函数可能在此文件中(或类似路径):

/usr/share/zsh/functions/Completion/Linux/_yast

非常感谢!虽然我还没有完全解决它(不久后会解决),但你的答案似乎非常准确(对我来说是 /usr/share/zsh/4.3.6/functions/_yast2)。 - gatoatigrado
1
很好,花了一些时间研究如何做。覆盖默认值会很不错(Q: https://dev59.com/65Tjs4cB2Jgan1zn2YaS) - Jakub M.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接