replaceall と inselect についてNo.09724
おすぎ さん 22/01/21 10:00
 
お世話になっております。

replaceall を実行後の result には、全置換個数が入ります。
replaceall に inselect を付けると、選択範囲(行単位)で全置換されます。
replaceall に inselect を付けて実行後の result には、
選択範囲での全置換個数が入るのでしょうか?

実行したところ、置換自体は選択範囲ですが、result にはファイル全体での置換個
数が入るようです。

こちらの操作ミスだったら すみません。

[ ]
RE:09724 replaceall と inselect についNo.09725
おすぎ さん 22/01/21 10:51
 
すみません。
こちらの勘違いだったようです。

beginsel を使って範囲指定した後に、
while 文で replaceall を複数回 行おうとしていました。
でもその間に、範囲指定は解除されてしまうようです。

範囲指定はすぐに消えてしまうんですね。

お騒がせしました。




[ ]
RE:09725 replaceall と inselect についNo.09726
秀丸担当 さん 22/01/21 12:04
 
replaceallでinselectした後は選択は解除されるので、次のreplaceallでは選択が無
いと全体になってしまいます。

特定の範囲を編集するには、幾つか方法があって、最近の秀丸エディタ本体のヘルプ
では、
[目次]→[コマンド]→[検索系コマンド]→[いろいろな検索例]→[特定の範囲内だけ
で検索したい場合]
のところに幾つかの方法が書かれていいます。

これらを同等のマクロの文にするとマクロでもできます。
「選択した範囲」はinselectやinselect2
「部分編集」はrangeeditin〜rangeeditout
「追加の条件」はmaskonlyやincolormarker
といった感じです。

最近のバージョンでは「範囲内検索を選択」コマンドが追加されていて、inselectで
書いたをそのまま使う場合、replaceallした後に「範囲内検索を選択」コマンドと同
等のselectinselectを使って再び選択状態にすると、inselectを継続して使う方法が
できます。

例:
replaceall "a","x",inselect;
selectinselect;
replaceall "b","y",inselect;
selectinselect;
replaceall "c","z",inselect;


[ ]
RE:09726 replaceall と inselect についNo.09727
おすぎ さん 22/01/21 12:29
 
おぉ〜そうなのですか。
貴重な情報をありがとうございます。

一つ教えて下さい。
「範囲内検索を選択」コマンドを実行する仕方がよく分かりません。
検索ダイアログを出す前に行うようですが。。。

[ ]
RE:09727 replaceall と inselect についNo.09728
秀丸担当 さん 22/01/21 14:28
 
「範囲内検索を選択」コマンドは、通常のメニューには無くて、[その他]→[キー割
り当て...]で割り当てしたりする必要があります。
キー割り当ては検索系コマンドにあります。

割り当てなしでは、[その他]→[コマンド一覧...]→[検索系]の一番下から選ぶ方法
もあります。

[ ]
RE:09728 replaceall と inselect についNo.09730
おすぎ さん 22/01/21 15:24
 
ありがとうございました。

[ ]