可以 zsh 完成命令标志



有没有办法让 zsh 在命令行上完成长标志名称?

$ command --reall<tab> 
$ command --really-long-flag-name

似乎是一件害羞的事情。

简短的回答是肯定的,或者当然可以。

要打开 zsh 的完成系统,您需要执行以下操作 – 可能在像您的~/.zshrc这样的启动文件中:

autoload -U compinit && compinit

在大多数现代类Unix系统上,一旦你这样做了,你应该发现许多命令已经完成了它们的标志和参数,因为zsh附带了一个用于常见Unix命令和实用程序的完成函数库。 这个库应该安装在像/usr/local/share/zsh/function这样的位置(或类似的地方,取决于你的系统),并且由一堆文件名以_字符开头的脚本组成,每个脚本定义特定命令的完成。

如果您感兴趣的命令或实用程序尚未被 zsh 正确完成,您有以下几种选择:

  • 查看 zsh 完成包。 (它很可能可由您的操作系统或发行版的包管理器安装。

  • 阅读您希望完成的工具的文档。 许多Unix实用程序都附带了bash和/或zsh的完成脚本,或者带有某种生成完成脚本的方法。

  • 如果所有其他方法都失败了,请阅读 zsh 完成系统上的文档(或找到一本好书或在线教程)并自己编写。 这显然可以不平凡!

阅读 zsh 文档也可能向您展示如何执行其他您可能还不知道想要的事情,例如打开基于菜单的完成。

最新更新