当设置了`separate-sections`样式时,如何让zsh将手动部分传递给man命令?

当设置了`separate-sections`样式时,如何让zsh将手动部分传递给man命令?

group-name当通过在 zsh 命令行上按 Tab 来要求完成时,只要将样式设置为空字符串,就可以根据其标签对匹配项进行分组:

autoload -Uz compinit
compinit
zstyle ':completion:*' menu select
zstyle ':completion:*' group-name ''
zstyle ':completion:*:descriptions' format '%d'

在命令的情况下,如果标签的样式设置为,则可以$ man进一步划分匹配:separate-sectionstruemanuals

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第一部分中的页面,而列表的说明提到了手册的第二部分。

是否可以让zsh在separate-sections设置样式时将相关手册部分传递给man命令?

我在用着zsh 5.6.2-dev-0 (x86_64-pc-linux-gnu)

答案1

您只需添加以下内容:

zstyle ':completion:*' insert-sections true

不幸的是,这没有记录,但您可以从代码中看到它:https://github.com/zsh-users/zsh/blob/8becb893579af0ca41617a15d3afcbea588fe621/Completion/Unix/Command/_man#L448

我测试了它并且它有效。

相关内容