zsh 补全:仅提供特定文件扩展名进行补全

zsh 补全:仅提供特定文件扩展名进行补全

目前,我的.zshrc

 zstyle ':completion::complete:mpv:*' menu yes select

除了使用菜单mpv完成之外,我还想将提供的完成限制为仅具有指定文件扩展名的文件,即mp4, mp3, ...

我如何将其整合到我现有的规则中?

答案1

最简单的方法是使用以下ignored-patterns设置:

zstyle ':completion::complete:mpv:*' ignored-patterns '^(*.(mp4|mp3))'

然而,这也会忽略目录.mp3不以或结尾.mp4

如果您仍然希望目录正常完成,那么您必须使用稍微复杂的file-patterns设置:

zstyle ':completion::complete:mpv:*' file-patterns '
  *(D-/):local-directories:"local directory" 
  *.(mp3|mp4)(D-^/):media-files:"media file"
'

(D-/)有关和的解释(D-^/),请参阅Zsh 手册中有关 glob 限定符的部分

相关内容