有没有办法让 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-completions包裹。 (它很可能可以通过您的操作系统或发行版的包管理器安装。)
阅读您希望完成的工具的文档。许多 Unix 实用程序附带了 bash 和/或 zsh 的完成脚本,或者带有某种生成完成脚本的方法。
如果其他方法都失败,请阅读documentation on zsh’s completion system (或者找到一本好书或在线教程)并自己编写。显然,这并非易事!
阅读 zsh 文档可能还会向您展示如何执行您可能还不知道的其他操作,例如打开基于菜单的完成功能。
关于shell - zsh 可以完成命令标志吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36020010/