当通过在 zsh 命令行上按 Tab 来请求完成时,如果group-name
样式设置为空字符串,则可以根据它们的标记对匹配项进行分组:
autoload -Uz compinit
compinit
zstyle ':completion:*' menu select
zstyle ':completion:*' group-name ''
zstyle ':completion:*:descriptions' format '%d'
在命令的情况下,如果将样式设置为标签$ man
,则可以进一步划分匹配项:separate-sections
true
manuals
autoload -Uz compinit
compinit
zstyle ':completion:*' menu select
zstyle ':completion:*' group-name ''
zstyle ':completion:*:descriptions' format '%d'
zstyle ':completion:*:manuals' separate-sections true
因此,如果我在 之后按 Tab $ man write
,完成系统会建议这些匹配:
$ man write
manual page, section 1 (general commands)
write
manual page, section 2 (system calls)
write writev
如果我write
在第一个列表中选择匹配项,则会$ man
打开write
手册第一部分的页面。
但是如果我write
在第二个列表中选择匹配项,$ man
仍然会打开write
第一部分的页面,而列表的描述提到了手册的第二部分。
separate-sections
设置样式时,是否可以使 zsh 将相关手册部分传递给 man 命令?
我正在使用zsh 5.6.2-dev-0 (x86_64-pc-linux-gnu)
.
您只需添加以下内容:
不幸的是,这没有记录,但您可以从代码中看到它:https ://github.com/zsh-users/zsh/blob/8becb893579af0ca41617a15d3afcbea588fe621/Completion/Unix/Command/_man#L448
我测试了它并且它有效。