|
自動起動マクロ(Ver8.31対応版)
目次−
自動起動マクロ
自動起動マクロを扱うためのマクロの文があります。
自動起動マクロは、秀丸エディタが切り替わるような文が実行されることは想定されていません。
なるべく切り替えが起きないような作りにすることをお勧めします。
特に「ファイルを開いた直後」「新規作成直後」「ファイルを閉じる直前」「アクティブ切り替え後」など、アクティブ切り替えそのものが対象となる種類ではうまくいかない場合があります。
通常のマクロ実行から自動起動マクロが実行されることもありません。
例えば、openfileをするマクロを実行すると、自動起動マクロの「ファイルを開いた直後」は実行されません。
マクロ実行後に自動起動マクロ相当の処理が必要な場合は、execmacroでマクロを実行する方法もあります。
ただし通常のマクロ実行の場合はeventやgeteventparamは得られません。
- event:(値)
-
自動起動マクロとしてマクロが実行されたとき、どのような種類かを表します。(V6.50以降)
0 自動起動マクロとして実行されていない
1 ファイルを開いた直後
2 新規作成直後
3 保存直前と直後
4 印刷直前と直後
5 編集後タイマー
6 カーソル移動後タイマー
7 ファイルを閉じる直前
8 アクティブ切り替え後(V8.00以降)
- geteventparam( 番号 ): (関数)
-
自動起動マクロとしてマクロが呼び出されたとき、さらにどのような条件で呼び出されたかな詳細な情報を取得します。(V6.50以降)
eventの値によって意味が違います。
ファイルを開いた直後(event==1)
geteventparam(0)の返り値
0 外部から開いた
1 秀丸エディタから開いた
2 常駐秀丸エディタから開いた
3 タグジャンプによって開いた(V8.30以降)
新規作成直後(event==2)
geteventparam(0)の返り値
0 外部から開いた
1 秀丸エディタから開いた
2 常駐秀丸エディタから開いた
保存直前と直後(event==3)
geteventparam(0)の返り値
0 保存直前
1 保存直後
印刷直前と直後(event==4)
geteventparam(0)の返り値
0 印刷直前
1 印刷直後
編集後タイマー(event==5)
geteventparam(0)の返り値
0 通常の編集
1 やり直しによる編集
geteventparam(1)の返り値
0 改行以外の編集
1 改行による編集(遅延時間0msのときのみ)
geteventparam(2)の返り値(V8.00以降)
0 単語補完の決定直後以外
1 単語補完の決定直後
geteventparam(3)の返り値(V8.00以降)
遅延時間(ms)
geteventparam(4)の返り値(V8.00以降)
遅延時間0msのとき、入力された一文字の文字コード。(ASCII文字限定)
カーソル移動後タイマー(event==6)
geteventparam(3)の返り値(V8.00以降)
遅延時間(ms)
geteventparam(4)の返り値(V8.20以降)
どういうコマンドによってカーソル移動したかを表すコマンド値。
通常の矢印キーによりカーソル移動は0になります。
コマンド値を調べるするマクロの例:(ステータスバーに表示)
title str(geteventparam(4)),1;
title -1,1;
ファイルを閉じる直前(event==7)
なし
アクティブ切り替え後(event==8)
geteventparam(0)の返り値
0 タグジャンプによって開いた以外(V8.30以降)
3 タグジャンプによって開いた(V8.30以降)
geteventparam(3)の返り値(V8.00以降)
遅延時間(ms)
- seteventnotify 番号: (文)
-
自動起動マクロとしてマクロが呼び出されたとき、マクロ実行後の処理を秀丸エディタに指示します。(V6.50以降)
eventの値によって意味が違います。
ファイルを開いた直後(event==1)
なし
新規作成直後(event==2)
なし
保存直前と直後(event==3)
かつ、geteventparam(0)==0で保存直前の場合。
seteventnotify 0; 保存処理を続行
seteventnotify 1; 保存処理を中断
印刷直前と直後(event==4)
かつ、geteventparam(0)==0で印刷直前の場合。
seteventnotify 0; 印刷処理を続行
seteventnotify 1; 印刷処理を中断
編集後タイマー(event==5)
なし
カーソル移動後タイマー(event==6)
なし
ファイルを閉じる直前(event==7)
seteventnotify 0; 閉じる処理を続行
seteventnotify 1; 閉じる処理を中断
seteventnotify 2; 保存するかどうかの問い合わせは出さずに続行
アクティブ切り替え後(event==8)
なし
|