zsh完了:完了のために特定のファイル拡張子のみを提供

zsh完了:完了のために特定のファイル拡張子のみを提供

現在私は以下を持っています.zshrc

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

メニュー補完機能を使用することに加えて、指定されたファイル拡張子を持つファイル(たとえば、、、...)mpvにのみ補完機能を提供するように制限したいと思います。mp4mp3

これを既存のルールにどのように統合しますか?

答え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-^/)以下を参照してください。glob修飾子のZshマニュアルセクション

関連情報