`separate-sections`スタイルが設定されている場合、zshがmanコマンドに手動セクションを渡すようにするにはどうすればよいですか?

`separate-sections`スタイルが設定されている場合、zshがmanコマンドに手動セクションを渡すようにするにはどうすればよいですか?

group-namezshコマンドラインで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ただし、2 番目のリストから一致する項目を選択すると、最初のセクションのページがまだ開かれ、リストの説明はマニュアルの$ man2 番目のセクションを参照します。write

separate-sectionsスタイルを設定するときにzshに関連するマニュアルセクションを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

私はそれをテストし、動作します。

関連情報