> 確かに、ロジックは美しくないというか取ってつけた感じだけど。
うーん,ロジックは至極正当だと思うのです。残りテキスト数をデクリメントしていって,残りテキストがゼロになったので「結局見つかりませんでしたよ」メッセージを出しているわけですから。これ,きちんとしたメッセージ,例えば (i--)??{ &m("すべてのファイルを検索しましたが見つかりませんでした.") . } にしたら,ほらふつうでしょ。
同じメッセージを出すために規定のメッセージ番号を使っているので,直前に出ていたメッセージを消さない,あるいは復活表示するというのが一番スマートなのですが,相当面倒だったので「取ってつけた感じ」風に見えてしまうんですよね。
> というのは表向きで、つい最近になるまで #57 を知らなかったりするなど、置換系の機能は十分に把握できていなかったりします。
いや,
#57 なんてこのマクロのためにあるようなコマンドだと思いますよ。だって,よくあるパターンとして,確認ありで置換を始めて「ふむふむ,これなら漏れはあるまい」と思い,確認置換を中断して全置換をしようとしますね。検索・置換文字列は同じなのに
#57 が使えないわけですよ。範囲や確認などのオプションが異なるので。結局使える場面と言えば,空行削除で最終的に一定の空きにするときに \n\n\n → \n\n という置換を行い,置換の戻り値がゼロになるまで繰り返すときくらい。知らなくて,使ってなくて当然でしょうね。