有没有办法让 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 文档也可能向您展示如何执行其他您可能还不知道想要的事情,例如打开基于菜单的完成。