localgrepの強調表示無効化についてNo.09795
Ganohr さん 22/03/28 17:26
 
いつもお世話になっております。


localgrepを何百回と発行するマクロが有り、
この命令には「nohilight」を付与できますが、

この意味はあくまで検索してヒットしたキーワードを強調しないようにするものです。

localgrepを行うファイルに拡張子別の強調表示が設定されている場合、
localgrepされた結果にもその強調表示が適用されてしまい、
速度低下を招いています。

localgrepにこのような強調表示の引き継ぎを行わせない方法がありましたらご教示
ください。

config命令もdisabledraw命令もlocalgrepの結果に予め効果をもたせることができず
困っております。localgrepの結果を最小化された画面で操作する方法は無いでしょ
うか。

試しに秀丸のウィンドウサイズを調整して小さくしてマクロを実行すると速度が上昇
します。

(マクロの開始と終了で秀丸のウィンドウを最小化する命令とかありましたっけ…)

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

[ ]
RE:09795 localgrepの強調表示無効化につNo.09801
秀丸担当 さん 22/03/29 08:52
 
localgrepをしたときは、ファイルタイプ別の設定は通常のgrep結果と同じになって
います。
localgrepの結果や、通常のgrepの結果が出ているところで、[その他]→[ファイルタ
イプ別の設定]を出すと、上部は「grepの設定(S):」となっていると思います。

「設定のリスト」ボタンより、新たな設定を作って、それをgrep結果に対して割り当
てると個別の設定にすることができます。
例えば「ファイルタイプ一覧」のほうで、追加ボタンでファイルタイプは拡張子では
なく▼ボタンから「grep結果」を選び、「新しい設定名を作る」をONにして、「grep
用」とします。
このgrep用の設定を、強調が何もない状態にしておくといいです。

最小化はshowwindow 2;、ウィンドウサイズはsetwindowsizeで指定できますが、タブ
モードでない場合は効果無いかもしれません。タブモードであれば同じウィンドウの
ため効果があるかもしれません。


ちなみに現在編集中の内容から絞り込む方法として、検索ダイアログから「すべて検
索 - 一覧表示」でコピーする方法や、「すべて検索 - 複数選択」を応用する方法が
あります。

「すべて検索 - 一覧表示」の場合は、一覧表示された後の右側のボタンの「すべて
行単位コピー」でコピーできるので、単発の手動操作で簡単にできます。

「すべて検索 - 複数選択」の場合は、複数選択されますが、さらに「行の選択」コ
マンドで行単位にして、「範囲選択を反転」コマンドで反転し、Deleteキーで削除す
ると絞り込まれた結果だけになります。

例えば後者の一連の操作をキー操作の記録をしてマクロとして保存すると以下のよう
な感じになります。(今開いているファイルの内容が変わるので保存しないように注
意が必要です)

setcompatiblemode 0x10000F;
setsearch "xxx" , 0x403800;
selectallfound;
selectline 1;
invertselection;
delete;
escape;

今開いているファイルの内容を避けるために、最初にselectall;copy;newfile;past
e;としたり、最初の一回はlocalgrepかにしておくといいです。
これを連続しても新しい秀丸エディタは起動しないので、config文やdisabledraw文
も使えることになると思います。

[ ]