メディアプレーヤーのzshの完成

メディアプレーヤーのzshの完成

私は以下を除いてグローバルに無効に.zshrcしました。menu selectmpv/mplayer

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

これは期待どおりに機能しますが、メニューが呼び出されたときにメディアファイルのみが表示されるようにルールを変更したいと思いますmpv(例: "mp3|mp4|mpg|avi|...")。

*テストするためにに変更してみましたが、うまく*.mp3いきませんでした。

ルールを変更するにはどうすればよいですか?

ベストアンサー1

zstyle完成設定は、完成の表示方法に影響し、完成の生成方法を調整できますが、完成を生成するコードを決定するわけではありません。コードは、またはそれに対応するものを使用して設定さcompdefれますcompctl

メディアファイルのみを完成ファイルとして指定するには、次のようにmpv呼び出します。compctl.zshrc

compctl -/ -g '*.(#i)(mp3|mp4|mpg|avi)' mpv

この-/オプションは、他の補完とともにディレクトリも完成することを意味します(そうしないと、サブディレクトリのファイルにアクセスできません)。この-gオプションは、完了するファイルを選択するためのグローバルモードを指定します。(#i)大文字と小文字を区別せずに一致します。

compdefより複雑な完成の選択のために(この答えの範囲外)、関数を作成し、自動ロードマジックを使用するか、それを介してコマンドに関連付けます。関数が完成の生成方法を調整したい場合は、zstyleスタイルを照会できます。

おすすめ記事