Zsh完了は`_`と`-`の間を区別しません。

Zsh完了は`_`と`-`の間を区別しません。

アンダースコアを入力する代わりにダッシュを入力し、zshオートコンプリート機能がダッシュまたはアンダースコアとして処理するようにしたいと思います。

組み込みのzsh機能、oh-my-zshなどでこれを達成できますか?これはグローバルに可能ですか?そうでない場合は、単一のオートコンプリート機能を使用できますか?

余談:現在可能な補完機能を提供するときに下線のみをダッシュ​​に変換するbashmark用のカスタム補完機能があり、それを交換/改善したいと思います。

答え1

マニュアルページには、zshcompsys大文字と小文字を区別しない完成を得る同様の例があります。

zstyle ':completion:*' matcher-list '' 'm:{a-zA-Z}={A-Za-z}'

これをmake-_同等のものに変更すると、好きなように動作するようです。

zstyle ':completion:*' matcher-list '' 'm:{-_}={_-}'

あるいは、これを最初の例に追加し、大文字と小文字を区別せずに完了することもできます。

zstyle ':completion:*' matcher-list '' 'm:{a-zA-Z-_}={A-Za-z_-}'

関連情報