置換機能の「一気」と「置換+次」で結果No.20567
PDR さん 05/12/08 00:07
 
置換機能の全置換で正規表現を用いて
「一気」と「置換+次」で結果が異なることを発見しました。
たとえば
000
という文章で、文章の先頭にカーソルを置いて
置換コマンドで[^0](行頭の0)をNULLにをする置換を全置換で行うと

「一気」で全置換 00
「置換+次」を繰り返す (なにもなし)

となります。
「置換+次」だと、変換後にその行にたいしてもう一度置換操作を行いますが、「一
気」では行わないようです
(正規表現を用いない場合はそのようなことはありませんでした)

知っていれば、正規表現の記載で回避できるのですが
御報告させていただきました
(秀丸ver5.11 HMJRE.DLL v172で発生することを確認しました)

[ ]
RE:20567 置換機能の「一気」と「置換+次No.20570
秀丸担当 さん 05/12/08 14:01
 

>置換機能の全置換で正規表現を用いて
>「一気」と「置換+次」で結果が異なることを発見しました。

調べてみたところ、全置換(または確認ダイアログで一気)のときのこの動作は、
V4.10β9において、仕様変更となっています。
「^0」を「」に全置換した場合、ループしてしまうと行頭以外の「0」も削除さ
れてしまう問題に対処したためと思われます。

下候補の場合はこの仕様は適用されていません。
カーソル移動をしてから、カーソル位置にある文字も含めて検索をして置換をし
ないとそれはそれで問題だからだと思います。

「置換+次」の場合は下候補の動作と同じになっているわけですが、こちらは全
置換の動作に合わせてもいいかもしれませんが、どうでしょうか。

あまり仕様変更すと、こちらを立てるとあちらが立たないということになりかね
ないので、慎重に考えたいと思います。

[ ]
RE:20570 置換機能の「一気」と「置換+次No.20574
白雲斎 さん 05/12/08 17:08
 
こんにちは、白雲斎です。

私の頭の中では、「置換+次」をまとめて処理したものが「一気」と解釈するの
で、双方の処理結果が違うのは違和感があります。
何か、スクリプト系言語(PerlやRuby)で、行移動を忘れて無限ループに陥った
ような感覚がします。(感覚ですよ)

出来るなら、現在の「一気」を分解したものが「置換+次」になって欲しいです。

[ ]
RE:20574 置換機能の「一気」と「置換+次No.20576
秀丸担当 さん 05/12/08 18:14
 

>私の頭の中では、「置換+次」をまとめて処理したものが「一気」と解釈するの
>で、双方の処理結果が違うのは違和感があります。
>何か、スクリプト系言語(PerlやRuby)で、行移動を忘れて無限ループに陥った
>ような感覚がします。(感覚ですよ)
>
>出来るなら、現在の「一気」を分解したものが「置換+次」になって欲しいです。

ご意見ありがとうございます。
そうですね。やはり「置換+次」は全置換と同様の動きとなるように変えたほう
が妥当かもしれません。
そのように検討したいと思います。
下候補は従来通りにしたいと思います。

[ ]