zsh 正規表現が失敗するのはバグか、それともユーザーエラーか?

zsh 正規表現が失敗するのはバグか、それともユーザーエラーか?

この正規表現は機能します( を削除します-search

[~%]for i  in foo*-search-aae-status ; do echo $i(:s/-search//) ; done
foo1-aae-status
foo2-aae-status
foo3-aae-status
foo4-aae-status
foo5-aae-status

しかし、この正規表現(その後のすべてを削除しようとする-)は

[~%]for i  in foo*-search-aae-status ; do echo $i(:s/-*//) ; done
foo1-search-aae-status
foo2-search-aae-status
foo3-search-aae-status
foo4-search-aae-status
foo5-search-aae-status

何か見落としているのでしょうか? 試してみました.*が、無視されてしまいます。

答え1

freenode irc の llua に感謝します。

hist_subst_patternを有効にすると、あなたがしようとしていることが可能になります

[%]setopt hist_subst_pattern
[%]print $TXT:s/-*//
foo1

関連情報