秀丸エディタ管理(Ver8.71対応版)
目次− 秀丸エディタ管理
 複数起動した秀丸エディタを管理するためのマクロの文があります。
hidemarucount:(値)
 現在稼動している秀丸エディタの数を返します。常駐秀丸エディタは数えません。
#c = hidemarucount;

findhidemaru( ファイル名 ) (関数)
 ファイル名で指定して秀丸エディタがいるかどうかを調べ、いる場合はそのウィンドウの番号を返します。いない場合は-1となります。番号とは、秀丸エディタのウィンドウを上から順に数えた番号になっています。
 自分自身はfindhidemaruの対象とはなりません。(自分自身は常に0番目です)
 ファイル名には、ドライブ名から始まるパス名も、ファイル名本体だけも、どちらでも指定してかまいません。ただし、ファイル名本体だけしか指定しない場合は目的とするファイルとは別のフォルダの同名ファイルを検出してしまうかもしれません。
if( findhidemaru( "client.cpp" ) == -1 ) {
    openfile "client.cpp";
}

setactivehidemaru:(文)
 アクティブな秀丸エディタを指定します。マクロの実行もそちらのウィンドウに移動します。
 パラメータとしてウィンドウの番号か、またはハンドルが指定できます。
setactivehidemaru 1;
setactivehidemaru findhidemaru( "client.cpp" );
 2番目のパラメータを指定すると、自分自身のウィンドウの重なり位置を調節できます。(V5.05以降)
 ウィンドウ番号かハンドルをを指定すると、指定したウィンドウの下に移動します。
 -1を指定すると、一番下に移動します。
 2番目のパラメータは省略できます。
setactivehidemaru 1,-1;
 タブモードの場合は第2パラメータに-1を指定すると、見えないウィンドウも数えられるので期待通りにはならないことがあります。
 一番下のタブグループを指定して、そのウィンドウを指定します。
#handle = getcurrenttab( true, 1 );
#hBottom = getcurrenttab( true, tabgrouptotal - 1 );
setactivehidemaru #handle, #hBottom;

hidemaruhandle( 番号 ):(関数)
 ウィンドウの番号からウィンドウハンドルを得ます。
 ウィンドウの番号は、単なるウィンドウの重なりの番号なので、nexthidemaruやsetactivehidemaruを実行すると対応が変ってしまいます。そこで、nexthidemaru等を使う場合はハンドルを使うようにした方がいいです。
 マクロを実行している自分自身のウィンドウハンドルは、ウィンドウの重なりに関わらず常にhidemaruhandle(0)で取得することができます。
#handle = hidemaruhandle( findhidemaru( "client.cpp" ) );

hidemaruorder( ハンドル ):(関数)
hidemaruhandleの逆で、ハンドルからウィンドウ番号を得る関数です。
#order = hidemaruorder( #handle );

closehidemaru 番号(文)
 番号(ハンドルも可)で指定した秀丸エディタを終了させます。ただし、自分自身を指定することはできません。
 指定した秀丸エディタがまだファイルを保存してない場合はclosehidemaruは失敗します。
 closehidemaruは結果コード(result)として、成功した場合はtrue、失敗した場合はfalseを返します。
#a = findhidemaru( "abc.txt" );
if( #a == -1 ) {
    message "abc.txtはいません";
    endmacro;
}
closehidemaru #a;
if( !result ) message "abc.txtの終了失敗です。";

closehidemaruforced 番号(文)
 closehidemaruと同様に秀丸エディタを終了させます。ただし、こちらは「(更新)」のついたファイルの場合でもエラーにならずに強制的に(保存せずに)終了させます。

他の秀丸エディタの状態を参照するキーワード
basename basename2 basename3
filename filename2 filename3
directory directory2 directory3
filetype    
windowstate windowstate2  
tabgroup taborder tabtotal
 以上のキーワードは、その後ろに角カッコで添え字を付けて、現在の秀丸エディタ(アクティブな秀丸エディタ)以外の秀丸エディタからも値を得ることができるようになっています。
 角カッコの中には、ウィンドウ番号でもウィンドウハンドルでも両方指定することができます。
$name = basename[2];
if( $name == "abc.txt" ) closehidemaru 2;

ウィンドウ番号と、ウィンドウハンドル
 ウィンドウ番号とは、秀丸エディタのウィンドウの重なり具合によって決まる番号です。 現在マクロを実行している秀丸エディタは、先頭にいるはずなので、この秀丸エディタのウィンドウ番号は0です。 その後ろに位置する秀丸エディタのウィンドウ番号は1です。さらにその後ろが2です。

 nexthidemaruコマンドを使うと、一番後ろの秀丸エディタが一番手前に移動します。

 prevhidemaruコマンドを使うと、現在の秀丸エディタは一番後ろに移動し、代わりにウィンドウ番号1のウィンドウが手前に表示されます。

 ウィンドウハンドルは、ウィンドウを識別するための値です。ウィンドウ番号は、nexthidemaru等で順番が変ると変化しますが、ウィンドウハンドルは変化しません。

タブモードのときの管理
 参照:秀丸エディタ管理(タブ編)


戻る