last updated:2023/12/27
たとえば、
秀丸エディタ
という内容で、"秀丸"を検索し削除する為に、
gofiletop;
searchdown2 "秀丸";
if(result){
message "削除します";
delete;
}
endmacro;
というマクロを作った場合、削除されるのが"秀丸"ではなく、 "秀"という一文字しか削除できないという状況の対処方法です。
「その他」→「動作環境」→「検索」→「検索の動作-検索での表示」が[点滅]になっていると、検索にマッチした箇所を削除できません。[範囲選択]にする必要があります。
「検索での表示」が[点滅]になっている場合、選択されているように見えるますが、実際は選択されていません。その為、「delete;」等の命令を実行しても、カーソル位置にある文字を消すだけの動作になります。 (範囲選択していれば、選択範囲が削除されますが、範囲選択されていないので、対象がカーソル位置のみになっている)
「setcompatiblemode文」を使えば、マクロ実行時に「検索での表示」の設定を、一時的に変更できます。
setcompatiblemode 0x00000200;
setcompatiblemode文の設定抜粋
0x00000000 | マクロの標準動作(動作環境に従う) |
0x00000100 | 点滅表示 |
0x00000200 | 範囲選択 |
以下のようにマクロを変更すれば、「検索での表示」の設定を変更しなくても、"秀丸"という検索にマッチした文字を削除できます。
setcompatiblemode 0x00000200;
gofiletop;
searchdown2 "秀丸";
if(result){
message "削除します";
delete;
}
endmacro;