|
どんぶり勘定さん今日は、ひろです。
「選択した範囲内のみ」については、もう結論がでているので、最初の
> 「置換」のwindowの「選択した範囲のみ」にチェックを入れるのですが、
> 複数行を選択した場合は、チェックが残っているのですが、一行を選択す
> るとチェックがはずれているので、たまに a -> b なんて変更を そのまま
> ファイル全体で置換えしてしまい、「あ゛ー」という雄叫びと共に涙ぐんで
> しまう事があります。
について視点を変えてみました。
これについては、以前から要望に上がっているアンドゥの強化版「一括置換
戻し」
→http://hidemaruo.dip.jp:81/hidesoft/hidesoft_2/x01681.html#1700
が実現されればよいと思うのですが、現状では末尾のマクロでそこそこ代用で
きると思いますが、如何でしょう。
何か不備や、「こうすればもっと確実にできる」という方法をご存じの方が
いらっしゃれば、ご指摘ください。→All
//一括置換を元に戻す macro
//実際に undo を遣ってみて、cursor 位置に検索語が有るかで終了判定
//→その為正規表現で「[a-z]+」を検索語にしていると、殆ど意味が
//無い (特に欧文) などの問題がある
//「選択した範囲内のみ」の場合は、``「選択した範囲のみ」で動作中の
//範囲を中間色で表示'' が ON でないと上手くいかない
if(searchbuffer == "")endmacro;
undo;
if( !result )goto Error;
#s = searchoption;
setsearch searchbuffer, #s&251;
#select = colorcode & 0x100;
#by = 10000000;
while(1){
#x = x;
#y = y;
finddown2;
if( #by < y || ((#x != x || #y != y)
&& (!(#select&colorcode&0x100)))){
redo;
break;
}
undo;
if( !result )goto Error;
#by = y;
}
setsearch searchbuffer, #s;
endmacro;
Error:
if(updated)message "Undo buffer is not enough!";
|
|