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
我测试了它并且它有效。