![当设置了`separate-sections`样式时,如何让zsh将手动部分传递给man命令?](https://linux22.com/image/141115/%E5%BD%93%E8%AE%BE%E7%BD%AE%E4%BA%86%60separate-sections%60%E6%A0%B7%E5%BC%8F%E6%97%B6%EF%BC%8C%E5%A6%82%E4%BD%95%E8%AE%A9zsh%E5%B0%86%E6%89%8B%E5%8A%A8%E9%83%A8%E5%88%86%E4%BC%A0%E9%80%92%E7%BB%99man%E5%91%BD%E4%BB%A4%EF%BC%9F.png)
group-name
当通过在 zsh 命令行上按 Tab 来要求完成时,只要将样式设置为空字符串,就可以根据其标签对匹配项进行分组:
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
第一部分中的页面,而列表的说明提到了手册的第二部分。
是否可以让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
我测试了它并且它有效。