検索・置換の条件設定についてNo.41194
旧姓山下 さん 24/04/18 08:33
 
秀丸エディタ担当様

いつもお世話になっております。

検索や置換をする際、「大文字/小文字の区別」や「正規表現」などの条件設定が可
能ですが、この初期値を決められるようにできないでしょうか。

現在、例えば「正規表現」にチェックを入れて検索すると、次の検索でも「正規表
現」にチェックが入った状態でウインドウが出る、という仕様なのだと思います。

これを、検索ウインドウは常に「正規表現」にチェックがない状態で現れる、あるい
は逆にチェックありの状態で現れる、という設定が可能になると嬉しく思います。

ご検討いただければ幸いです。

旧姓山下

[ ]
RE:41194 検索・置換の条件設定についてNo.41195
秀丸担当 さん 24/04/18 12:16
 
検索ダイアログの初期状態は、基本的に覚えていますが、動作環境の設定によります。
[その他]→[動作環境]→[検索]→[検索ダイアログ]のところに設定があります。

大文字/小文字の区別、単語の検索、正規表現といった基本的なものについては、[単
語の検索の状態を覚える]があるだけです。
正規表現についてはマクロを使って、マクロ登録したものをキー割り当てなどして使
う方法があります。
以下のような方法でどうでしょうか。

例1:
//正規表現常にOFFで検索ダイアログ
setsearch searchbuffer, searchoption & 0xFFFFFFEF, searchoption2;
find;
endmacro;

例2:
//正規表現常にONで検索ダイアログ
setsearch searchbuffer, searchoption | 0x00000010, searchoption2;
find;
endmacro;

動作環境に[単語の検索の状態を覚える]のように正規表現のオプションがあってもい
いかもしれないです。
ただその場合、上記のような既存のマクロの互換性が無くなるので、そのあたりうま
くやらないといけなくなってきます。

[ ]
RE:41195 検索・置換の条件設定についてNo.41196
旧姓山下 さん 24/04/21 12:00
 
秀丸担当様

ご回答ありがとうございました。御礼が遅くなって申し訳ありません。

>大文字/小文字の区別、単語の検索、正規表現といった基本的なものについては、
>[単語の検索の状態を覚える]があるだけです。

取り敢えず「単語の検索の状態を覚える」をオフにして様子を見ます。

旧姓山下

[ ]
RE:41196 検索・置換の条件設定についてNo.41381
旧姓山下 さん 24/09/23 22:31
 
秀丸エディタ担当様

いつもお世話になっております。

半年ほど前,検索や置換における条件の初期値を設定できないかとお願いしました。
取り敢えずの対策をお教えいただきましたが,改めて同じお願いをさせていただきま
す。

半年間ずっと[その他]→[動作環境]→[検索]→[検索ダイアログ]で[単語の検索の状
態を覚える]をオフにして使っていますが,相変わらず検索や置換の際に「正規表
現」が意図せずオンになったりオフになったりします。

何か無意識にいじった結果なのだとは思いますが,検索で思わぬ結果が出たとき,
「正規表現がオンになってたか」等で検索し直すのは若干ストレスです。

設定画面にで

ダイアログ表示時の初期値の設定
「大文字/小文字の区別」:□チェックあり/□チェックなし
「正規表現」:□チェックあり/□チェックなし

などの初期値設定ができるようにしていただけると助かります。

以上,ご高配いただければ幸いです。

旧姓山下

[ ]
RE:41381 検索・置換の条件設定についてNo.41382
igus さん 24/09/24 06:04
 
ひとつ思いついたのですが、例えば次のようなマクロを用意してキーボードに登録し
検索の際に呼び出すようにするのはどうでしょうか?

//searchdialog.mac
//大文字/小文字の区別:チェックあり
//正規表現:チェックあり
beginclipboardread;
$s=getselectedtext();
if($s=="")$s=getclipboard;
searchdialog $s,casesense,regular;

[ ]
RE:41382 検索・置換の条件設定についてNo.41384
秀丸担当 さん 24/09/24 14:32
 
現状でやるには、前に書いたマクロか、igusさんも書かれているようなマクロをキー
割り当てするのがいいです。
オプションにする場合、何もしない/ONにする/OFFにする、の3通りがいると思います。
ONOFFを指定可能にすると、今まで通り動くマクロと動かないマクロがでてきたりす
ることが予想されます。
オプションのご要望があるということで、参考にさせていただきます。

[ ]
RE:41384 検索・置換の条件設定についてNo.41386
旧姓山下 さん 24/09/24 16:53
 
igus 様,秀丸担当様

ご回答ありがとうございました。

まず,下手に初期値を設定すると動作に不具合を生じるマクロが現れ兼ねないという
こと,承知しました。考えもしませんでした。

次に igus 様に教えていただいたマクロを試してみました。結果,以下の点を設定で
きれば,これでもいいかなと思えました。厚かましいお願いですが,もし以下の対策
ができるようであれば,どうすればよいかお教えいただきたく存じます。
(1)ダイアログを出すと最初から検索語に何か入っている。検索語の初期値は空に
しておきたい。
(2)大文字小文字の区別はしなくてよい。
(3)文字列を選択した状態でマクロを呼び出したとき,「選択した範囲」にチェッ
クが入った状態でダイアログを出したい。

補足です。
(1)については,要するにマクロ全体を
searchdialog "",regular;
の1行だけにすれば実現できるだろうと思えるのですが,これで間違いないでしょうか。
(2)については casesense を除けばよいのだろうと思ったのですが,除いても
「大文字小文字の区別」にチェックが入ったままでした。
(3)についてはお手上げです。
 文字列を何も選択しない状態でマクロを呼び出すと,「選択した範囲」はグレー化
され,チェック不能な状態です。しかし,何か選択して呼び出すと,「選択した範
囲」はチェック可能な状態ですが,チェックはありません。

以上,お手数ですが,もしよろしければ対策をお教えいただきたく,お願い致します。

旧姓山下

[ ]
RE:41386 検索・置換の条件設定についてNo.41387
igus さん 24/09/24 17:18
 
選択していたら選択文字を、していなければクリップボードから拾って検索文字にし
てみたのですが、余計だったようですね。次のマクロで試してみてください。

//searchdialog.mac
searchdialog "",nocasesense,regular,inselect;

[ ]
RE:41387 検索・置換の条件設定についてNo.41388
秀丸担当 さん 24/09/25 09:25
 
様々なことを全て明示的に指定するには、igusさんの言われる通り、searchdialog文
を使うとできます。

>(1)については,要するにマクロ全体を
>searchdialog "",regular;
>の1行だけにすれば実現できるだろうと思えるのですが,これで間違いないでしょう
>か。

検索文字列についてはそのとおりです。
ただし、regularが付いているので、正規表現もONにするという意味が含まれます。
regularを付けないと、正規表現はOFFにするという意味になります

>(2)については casesense を除けばよいのだろうと思ったのですが,除いても
>「大文字小文字の区別」にチェックが入ったままでした。

regularが付いている場合は、casesenseがON相当になります。
ちょっとややこしいです。
これらの動作は、マクロヘルプの
目次− 検索系文− searchdialog文−検索の予約語パラメータ
のところに詳しく書いてあります。

省略するとどっちだったか間違えやすいので、casesenseまたはnocasesense、regula
rまたはnoregularは、毎回指定すると確実だと思います。


全て明示的に指定せず、特定の検索オプションだけを変えて、あとは普通に検索ダイ
アログを出すには、前のコメントの通り、find文を使う方法もあります。

[ ]
RE:41388 検索・置換の条件設定についてNo.41389
旧姓山下 さん 24/09/25 20:32
 
igus様,秀丸担当様

ありがとうございました。取り敢えず,
searchdialog "", nocasesense, noregular, inselect;
で行くことにしました。

> 選択していたら選択文字を、していなければクリップボードから拾って検索文字に
>してみたのですが、余計だったようですね。

このような使い方は滅多にしないと思うため,せっかく教えていただきましたが上記
のシンプルな方法で行くことにしました。しかし,何か自分で工夫したいことが生じ
たときのために,メモは残させていただきます。ありがとうございました。

しかし,秀丸エディタのマクロのヘルプは非常に充実していますね。nocasesense の
件など調べればすぐ分かる状況だったようで,余計な手間をお掛けし,申し訳ありま
せん。

お教えいただいたマクロとヘルプを参考に,置換版を作ってみました。内容は
・大文字小文字の区別をしない,
・正規表現を使わない,
・選択範囲がある場合は選択範囲に限定する,
・検索文字列には最新の検索履歴の語を入れておく,
・置換文字列にも最新の置換履歴の語を入れておく,
としたものです。以下の3行でいいかと思いますが,何かアドバイスがあればお教え
いただきたく存じます。

$s = getsearchhist(0);
$r = getreplacehist(0);
replacedialog $s, $r, nocasesense, noregular, inselect;


最後に,秀丸エディタでは「検索アイコン」を押した場合に先の検索マクロを,「置
換アイコン」に置換マクロを設定することなどできるのでしょうか。あるいはマクロ
をツールバーに設置する方法は分かりますので,これらそれぞれにアイコンを付ける
方法などありますでしょうか。

以上,御礼と質問2件になりますが,お手すきのときにでも改めてご回答賜れば幸い
です。

旧姓山下

[ ]
RE:41389 検索・置換の条件設定についてNo.41390
igus さん 24/09/26 00:32
 
マクロは提示されたので大丈夫だと思います。
動作環境-ウィンドウ-ツールバー-詳細からマクロをツールバーに登録することはで
きますが、ツールバーデザインはいじったことがないのでよくわかりません。
自分でやるなら mousemenu を使ってキーボードから呼び出すようにします。

//検索と置換.mac
setmenudelay 700;
mousemenu
"&S 検索",
"&R 置換";
#r=result;
if(#r==0){endmacro;
}else if(#r==1){
  searchdialog "",nocasesense,regular,inselect;
}else if(#r==2){
  $s=getsearchhist(0);
  $r=getreplacehist(0);
  replacedialog $s,$r,nocasesense,noregular,inselect;
}


[ ]
RE:41390 検索・置換の条件設定についてNo.41391
秀丸担当 さん 24/09/26 09:56
 
置換版のマクロもということで、目的に合っているのであれば良いと思います。

ツールバーについては、検索コマンドのボタンや、置換コマンドのボタンをそのまま
にして動作だけを変えるということはできません。
[マクロ]→[マクロ登録...]で登録されたマクロを配置することは可能です。
マクロをツールバーに配置する場合、虫眼鏡のようなアイコンにはなりません。

ツールバーを右クリックして、[ツールバーデザイン...]のところで各種のカスタマ
イズができます。
簡単には、[マクロ名を表示]をONにして、マクロのボタンを文字列のボタンにするこ
とです。

V9.33以降では、[定義ファイルによる指定]を使って目的のボタンだけを色付きフォ
ント文字にすることができますが、少々記述が面倒です。

マクロを作成されていて、いまさらになってしまいますが、次のβ版で動作環境のオ
プションも追加してみようと思います。
ただ互換性等も問題もあり、変更やボツになる可能性もあります。

[ ]
RE:41391 検索・置換の条件設定についてNo.41392
旧姓山下 さん 24/09/26 21:30
 
igus様,秀丸担当様

何度もご回答ありがとうございました。

今のところ検索アイコンと先のマクロをリンクさせるなどの方法は取れないのですね。

igus様に教えていただいた方法では,左手でショートカットキーを押してマクロを呼
び出すという作業が必要ですが,慣れるまで大変そうですね。

ツールバーに各マクロを置きつつ,igus様に教えていただいた方法も取れるようにし,
自分のやりやすい方法を探していきたいと思います。

動作環境のオプションも楽しみに待ちます。

ありがとうございました。

旧姓山下

[ ]