Shell zsh可以完成命令标志吗?
有没有办法让zsh在命令行上完成长标志名Shell zsh可以完成命令标志吗?,shell,command-line,zsh,flags,zshrc,Shell,Command Line,Zsh,Flags,Zshrc,有没有办法让zsh在命令行上完成长标志名 $ command --reall<tab> $ command --really-long-flag-name $command--reall $command——真正的长标志名 这似乎是一件很明智的事情。简单的答案是肯定的,或者当然可以 要打开zsh的完成系统,您需要执行以下操作–可能在启动文件中,如~/.zshrc: autoload -U compinit && compinit 在大多数现代类Unix系统上,
$ command --reall<tab>
$ command --really-long-flag-name
$command--reall
$command——真正的长标志名
这似乎是一件很明智的事情。简单的答案是肯定的,或者当然可以 要打开zsh的完成系统,您需要执行以下操作–可能在启动文件中,如
~/.zshrc
:
autoload -U compinit && compinit
在大多数现代类Unix系统上,一旦这样做,您应该会发现许多命令已经完成了它们的标志和参数,因为zsh附带了一个用于常见Unix命令和实用程序的完成函数库。此库应安装在类似于/usr/local/share/zsh/function
(或类似位置,取决于您的系统)的位置,并由一组文件名以字符开头的脚本组成,每个脚本定义特定命令的完成
如果您感兴趣的命令或实用程序尚未由zsh正确完成,则您有几个选项:
- 检查一下包裹。(它很可能可以由您的操作系统或发行版的软件包管理器安装。)
- 阅读您希望完成的工具的文档。许多Unix实用程序附带用于bash和/或zsh的完成脚本,或者以某种方式生成完成脚本
- 如果其他方法都失败了,请阅读(或找到一本好书或在线教程)并自己编写。显然,这不是小事
阅读zsh文档还可以向您展示如何做您可能还不知道的其他事情,类似于打开基于菜单的补全。一个可能值得直接从zsh补全中引用的小添加是compdef\u gnu\u generic
,它解析命令的--help
输出以组装补全。感谢@wjv--我相信我在.zshrc
中遇到了compinit
问题。“它现在可以正常工作了。@Sasgorilla很好,很高兴听到它。