zsh 完成功能没有单独的下划线文件?

zsh 完成功能没有单独的下划线文件?

我正在尝试学习如何编写完成函数,最初我想避免为单独的定制而产生大量的单独文件(我已经有足够的文件了,我不想要更多)。

有没有办法.zshrc直接将整个自定义逻辑写在文件中?

顺便说一句这里有一个我想玩的例子但它再次使用了一个名为的单独文件_hello

#compdef hello

_arguments "1: :(World)"

答案1

compdef是一个独立的命令,因此你可以轻松地使用

compdef '_arguments "1: :(World)"' hello

这里我使用的是第一种形式compdef

compdef [ -ane ] function name ... [ -{p|P} pattern ... [ -N name ...]]

其中function可以是需要调用的函数,或者是“包含几乎任何 shell 代码的字符串”。

的完整文档compdef太复杂了,无法在此引用。官方文档是这里但你真的必须读整章完成系统以充分理解它。

相关内容