全置換後のキャレット位置No.40506
さん 23/04/27 13:58
 
 お世話になっております。

 かなり難しいかと思うんですが、要望です。
 現状、全置換を行うとファイルの先頭にキャレットが移動してしまうのですが、こ
れをなるべく置換前にあったキャレット位置にするようにはできないでしょうか。
 一応設定とかは見てみましたが、それらしき設定はないようです。
 もし可能でしたら実装していただけるとうれしいです。
 環境はWindows11 22H2 64ビット、秀丸エディタ Ver.9.21です。

 以上、よろしくお願いいたします。

[ ]
RE:40506 全置換後のキャレット位置No.40507
秀丸担当 さん 23/04/27 16:08
 
全置換の後は、通常の場合、最後にヒットして置換した場所にカーソルが行きます。
クイック全置換の場合は、先頭になります。おそらく試されたのはクイック全置換か
と思います。
マーク、編集マーク、カラーマーカーなど他の情報も消えたりします。
クイック全置換の場合は、全部消して全部入れ替えるという方式なので、難しいです。

通常の全置換だとしたら、何らかの手段は考えられると思います。
手動でする簡単なものは、マークしておいて、その場所に戻る方法です。
ただ他にもマークがあると探すのが面倒です。
他には全置換前に見えないカラーマーカー(見えてもいいですが)をつけておくと、
唯一1つのカラーマーカーを探すことで、細かい制御もできるかもしれません。
いずれの場合も置換の内容によっては、クリック全置換じゃなかったとしも、元の
カーソル位置も含めて全部消える可能性はあると思うので、確実な機能とするのは難
しいと思います。
緩くてもよければ、カラーマーカーのマクロを作ってなんとか、という感じでどうで
しょうか。

[ ]
RE:40506 全置換後のキャレット位置No.40509
igus さん 23/04/27 20:36
 
陸さん、こんにちは
ひとつ思いついたのですが置換コマンドをこんな感じのマクロに
置き換えてるというのはどうでしょう?

//replace.mac
#x=x;#y=y;begingroupundo;
$s=getselectedtext();
replacedialog $s,"";
moveto #x,#y;endgroupundo;

[ ]
RE:40507 全置換後のキャレット位置No.40511
さん 23/04/28 08:06
 
 お世話になります。

>全置換の後は、通常の場合、最後にヒットして置換した場所にカーソルが行きます。
>クイック全置換の場合は、先頭になります。おそらく試されたのはクイック全置換
>かと思います。

 すみません、私が混乱していました。
 まず、利用している全置換はクイック全置換ではないです。
 確かに1つでも置換箇所があれば、最後に置換した箇所に移動します。
 しかし、置換結果が何もなかった際に、先頭に移動してしまうようです。
 とりあえず、こちらを修正するのは難しいでしょうか。

>通常の全置換だとしたら、何らかの手段は考えられると思います。
>手動でする簡単なものは、マークしておいて、その場所に戻る方法です。
>ただ他にもマークがあると探すのが面倒です。
>他には全置換前に見えないカラーマーカー(見えてもいいですが)をつけておくと、
>唯一1つのカラーマーカーを探すことで、細かい制御もできるかもしれません。
>いずれの場合も置換の内容によっては、クリック全置換じゃなかったとしも、元の
>カーソル位置も含めて全部消える可能性はあると思うので、確実な機能とするのは
>難しいと思います。
>緩くてもよければ、カラーマーカーのマクロを作ってなんとか、という感じでどう
>でしょうか。

 やはりそうですよね。
 マークはそれなりに多用しているんですが、カラーマーカーは使ったことがなく、
よくわからないので、少し調べてみたいと思います

 それでは。

[ ]
RE:40511 全置換後のキャレット位置No.40512
秀丸担当 さん 23/04/28 11:16
 
クイック全置換ではなく、通常の全置換で見つからない場合でしたか。
その場合、確かに一番上になるだけでした。
見つからない場合は元の場所になったらいいと思います。
マクロの互換性や、[次の秀丸エディタも続けて置換]のときなど問題ないか調べてみ
ます。

今頃気づいたのですが、[検索(S)]→[前のカーソル位置(V)]がありました。
ただこれを実行するだけでよかったです。
見つからないときだけでなく、見つかった場合もこれでよかったです。
ただし置換によって行や桁がずれる場合はずれると思います。

見つからない場合の動作を変更するとして、変更したら[前のカーソル位置]コマンド
の動作はどうなるのかと考えるとよくわからないので、いじらないほうがいいかもし
れないです。

[ ]