アンダースコアを入力する代わりにダッシュを入力し、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_-}'