setcompatiblemode文(Ver8.30対応版)
目次− setcompatiblemode文 setcompatiblemode文は、マクロの互換性の指示をします。(V6.00以降) パラメータに以下の値を指定できます。 折りたたみがあるときの動作を、以下の値のOR演算した値で指定できます。 部分編集されているときの動作を、以下の値のOR演算した値で指定できます。 openfileなどでファイルを開くときの排他制御(秀丸エディタで同じファイルを開く場合)の動作を、以下の値のOR演算した値で指定できます。 「検索での表示」の動作を、以下の値のOR演算した値で指定できます。 「貼り付け後のカーソル位置」の動作を、以下の値のOR演算した値で指定できます。(V8.00以降) マクロ内で検索系コマンドを実行しても、マクロ終了後に検索条件をマクロ実行前と同じに戻すことが出来ます。(V8.20以降)
V6.00において追加された「折りたたみ」や「部分編集」をしている時は、カーソル移動の挙動が従来とは異なります。 例えば、up;やdown;ではV6.00未満では必ず一行移動していましたが、V6.00以降では、折りたたみがあると数行ジャンプしたり、部分編集では移動しないことがあります。 マクロは、この互換性を維持するために、全ての文のカーソル移動の挙動は折りたたみと部分編集は無視して、V5.xx以前の従来通りの動きのままとなるようになっています。 setcompatiblemode 0x000f; (つまり 0x0003 | 0x000c)とすると、折りたたみと部分編集を無視せずにマクロを動作させることができます。 V6.00以降でキー操作の記録をすると、自動的にこの文が付きます。 この文を実行しなければ、setcompatiblemode 0x0000; と同じ状態で、V6.00未満の動作と同じになります。 (V6.00時点では「折りたたみを無視してなるべく維持」「部分編集を無視してなるべく維持」と同等になります。) 0x0001の「折りたたみを解除」は、setcompatiblemodeを実行したとたんに、全ての折りたたみが解除されます。 0x0002の「折りたたみを無視してなるべく維持」は、折りたたみ中であることは無視しつつ、必要なら解除し、解除する必要がなければそのままになります。 0x0004の「部分編集を解除」は、setcompatiblemodeを実行したとたんに、部分編集が解除されます。 0x0008の「部分編集を無視してなるべく維持」は、部分編集中であることは無視しつつ、必要なら解除し、解除する必要がなければそのままになります。 setactivehidemaruなどでマクロの実行が他の秀丸エディタに移動してもこの状態は引き継がれます。 マクロ終了後に検索条件を戻す用の0x20000の指定について 「setcompatiblemode 0x20000;」は、一番最初にそれを実行した瞬間に検索条件がバックアップされなおされます。なので、検索条件を書き換えた後にこの命令を使うと、マクロの実行前とは別の検索条件が復元されてしまう可能性があります。なので、この命令は検索系コマンドを使う前に実行してください。 「setcompatiblemode 0x20000;」を複数回実行しても、検索条件のバックアップは一番最初のsetcompatiblemode時だけになります。また、「setcompatiblemode 0x20000;」を実行した後で、例えば「setcompatiblemode 0;」のように、0x20000のフラグをクリアするような動作をしたとしても、検索条件の保存/復元自体はキャンセルされず、マクロが終了した時点で必ず検索バッファの復元が実行されます。(Ver8.22から一部仕様変更がありました) |