(ここでの^Mは^V ^ M、ff = unixです)
s/^M*$/\^M/
正常に動作します。任意の行で0-多くの^Mを1つの^Mに変換します。
しかし、これを「matchtext is here with more text ^ M ^ M ^ M」のような一致する行でのみ実行しようとするs/^matchtext.*\zs^M*$/\^M/
と、機能せず、代わりに1つの^ Mが追加されますか?
.*
私が理解していないのはここで
の振る舞いであり、s/\zs^M*$/\^M/
機能しますが、紹介するだけではs/.*\zs^M*$/\^M/
機能しません。
魔法/魔法の問題?s/.\\*\zs^M*$/\^M/
動作しているように見えますが、それでもs/matchtext.\\*\zs^M*$/^M/
動作しません。