はじめに現在、秀丸エディタQ&A集を秀丸エディタVer.8系に対応させるよう編集作業中です。正規表現関連以外は、徐々に縮小・整理していきます。「秀丸エディタ」Ver.7.00Ver.8は追加・変更が多いので、サイトー企画にある、秀丸エディタの紹介(Ver8.00対応版)を参照してください。5.00から変換モジュールが導入されました。変換モジュールライブラリに「Sort」があります。この変換モジュールを導入すれば、秀丸エディタでソートが可能になります。(変換モジュールはマクロからも使用できます。別途、変換モジュールを追加する必要はありません。TSV/CSV用に、タブ、カンマ区切りに限り、フィールドでソートが可能になってます。マクロから変換モジュールを使う方法はマクロから変換モジュールを呼び出す方法を参照してください。注記追加Windows(2000、XP)標準のsort.exeは、英文字の大文字・小文字を区別しません。con」を実行しても、期待する結果にならない場合があります。UNIX系のSortを使えば可能です。Windows標準のSortでも可能ですが、先頭からの文字数を指定するだけなので、固定長以外では使えない。UNIX系ソートの場合、フィールドの区切り文字を指定し、フィールドでソートすることも可能。UNIX系のソートは以下のURLから入手可能です。(Sort.exeを動作させるには、libiconv2.dll、libintl3.dllが必要です。形式で実行してください。これを秀丸で開くように変更したいのですが?A説明追加Ver.7から「その他」−「動作環境」−「関連付け」で設定を行います。Explorer」にある「開発者ツール」を使用します。「開発者ツール」は「F12」を押すか、メニューの「ツール」-「「開発者ツール」から起動します。ファイル選択ダイアログが表示されるので、秀丸エディタ(hidemaru.exe)を指定する。[HMEXXXXA]●大文字を小文字に、小文字を大文字に変換したい新規追加Q編集中のファイルにある大文字を小文字に、または小文字を大文字に変換することは出来ますか?A編集中のファイルにある、大文字/小文字を変換するには以下の方法があります。「大文字<->小文字の変換」を使う。「大文字<->小文字の変換」はカーソルのある文字だけを対象に、大文字<->小文字変換を行います。B→bただし、半角文字しか対応していません。「編集」メニューの「変換」を使う。case」が小文字変換になります。変換機能を使うには、変換する文字範囲を、あらかじめ選択しておく必要があります。case」共に、半角全角文字を対象に変換を行います。置換を使う置換を方法もありますが、1文字単位でしか出来ません。(正規表現を使っても。複数文字を同時に置換するのは無理です。(田楽DLL+Bregexp.dllを使って、マクロを組めば可能かもしれない。それと、エスケープシーケンス(テキスト修飾子)である、\l、\u、\L、\U等も使えません。対し、変換モジュールの機能を実行できるようになりました。case」を指定すれば小文字変換が可能です。「置換で、変換モジュールの機能を使う」を参照してください。[HMEXXXXA]●編集しているhtmlファイルをブラウザで開きたい新規追加Q秀丸エディタで編集中のhtmlファイルを、ブラウザで開きたいA秀丸エディタのコマンドに「関連付けで開く」というコマンドが、用意されています。この機能を使えば、編集しているファイルを、関連づけられたアプリケーションで開くことができます。単純に、関連付け起動を行っているだけなので、ファイルを開いた時の挙動は、アプリケーションに依存します。同じファイルで、複数回の「関連付けで開く」コマンドを実行した場合、複数のブラウザが開くことになります。(最初に開いているファイルをリロードすることはない。Ver.8より、「ファイルを開く」ダイアログの初期状態が指定できます。新規作成状態(無題の状態)か、常駐秀丸エディタから「開く」を選択した場合のみ、有効です。(既存のファイルを開いている場合には、設定は無効になる。)マクロを使う方法もあります。[HMEXXXXA]●ファイルを秀丸エディタで編集したのに、反映されていない新規追加Qファイルを秀丸エディタで編集したのに、メモ帳など他のアプリケーションで確認しても編集した内容が反映されていないAWindowsの「VirtualStore」という機能です。「管理者権限」が必要です。「保護されたフォルダ」のファイルを書き換えようとしても、エラーになったり、最悪の場合はアプリケーションがクラッシュします。実際のファイルを書き換えるのではなく、別の場所にファイルを作成し、そのファイルを書き換えるような動作になってます。実際は、Windowsがこっそり違う場所にすり替えているという状態です。読み込み時も同様で、すり替えた場所にファイルが存在すれば、そちらのファイルを開く事になります。Vistaに対応したソフト"は、実際のファイルという別のファイルを開く事になるので、表示される内容が違ってしまいます。Vistaに対応したソフト"に切り替える事が可能です。文を使って編集ウィンドウを切り替えたいのですが、使い方がよく分かりません。Ver5.05以降、パラメータが追加されています。2番目のパラメタを指定すると、自分自身のウィンドウの重なり位置を調節できます。setactivehidemaruの第二引数の使用例。「次の秀丸エディタ」を、「nexthidemaru」を使わないで行う。秀丸エディタ」に切り替えるため、2番目のウィンドウをアクティブにする。単純に2番目のウィンドウ(b)が先頭に移動するだけなので、(a)と(b)が入れ替わるだけ。再度2番目のウィンドウをアクティブにしても、(a)と(b)が入れ替わるだけで、(c)には移動しない。秀丸エディタ」で順次ウィンドウを切り替えるには、先頭のウィンドウを最後に移動する必要があります。第二引数を指定し、先頭のウィンドウを最後に移動させる。現在の秀丸(Windows95以降対応バージョン)では、設定は全てレジストリに保存されています。なっていますが、これは16bit版秀丸との(マクロの)互換性のための動作です。現状では、レジストリアクセス関数で、レジストリから値を取得する方がいいでしょう。"引用マークの取得に失敗しました。\nマクロを終了します。5.00から変換モジュールが導入されました。変換モジュールライブラリに「uniq」があります。この変換モジュールを導入すれば、秀丸エディタで重複行の削除が可能になります。(変換モジュールはマクロからも使用できます。変換モジュールを使うにはを参照してください。正規表現を使う方法もあります。検索文字:(^.+\n)\1置換文字:\1連続している行を1行にします。同じ行が複数連続する場合には、複数回実行する必要があります。[HMMXXXXA]●自動起動マクロで複数のマクロを実行したい新規追加Q自動起動マクロでは、一つのマクロしか指定できません。複数のマクロを実行する方法はありませんか?A自動起動マクロにはマクロは一つしか指定できません。複数のマクロを登録するには、ダミーのマクロを用意し、その中で実行したいマクロを指定します。マクロ実行中に、マクロを実行するには、"execmacro"文を使用します。[HMMXXXXA]●マクロ実行すると「DLLがロードされていないのにdllfunc関数が使われました」と表示される新規追加Qマクロ実行すると「DLLがロードされていないのにdllfunc関数が使われました」と表示され、マクロが中断してしまいます。以下の内容が考えられます。loaddll文/関数で、dllの読み込みに失敗しているのに、dllfunc/dllfuncstrを呼び出しているDLLの読み込みに失敗する原因としては、DLLが適切な位置に配置されていない等が考えられます。マクロの説明書等に記載されているはずなので、確認してください。マクロとDLLが、同じ場所にあるにも関わらず、動作しない場合は、DLLのロード部分を確認見直してみてください。loaddll文の有効範囲の問題(DLLの有効範囲を参照)複数DLLを使用していた場合、DLL切替に失敗している他の人が作ったマクロの場合は、作った人に連絡するようにして下さい。表示される場合があります。通常版でも浮動小数点演算が可能です。"ScriptControl"を使用し、WSHで演算させて、文字列として、取り込みます。注意:64bit環境では、"ScriptControl"はサポートされていないので、以下のサンプルは動作しません。OSで、64bit秀丸エディタを使用している場合は動作しません。OSで、32bit秀丸エディタを使用している場合は動作します。"オブジェクトの作成(ScriptControl)に失敗しました。"プロパティの設定(Language)に失敗しました。"Eval(1)の実行に失敗しました。"Eval(2)の実行に失敗しました。"Eval(2)の実行に失敗しました。内容変更ファイル編集中に、どの行を編集したか知りたい場合は、以下の手順で編集個所を知ることが出来ます。編集1」にある「編集した行の表示方法」で、「行番号の色を変える」を選択する。「その他→ファイルタイプ別の設定→デザイン」にある「編集した行の号番号」で、色などデザインを設定してください。(ここまでで、編集した行番号が、設定した状態になります)「検索→編集マークの上(下)検索」で、編集行に移動することが出来ます。:任意のUnicode????の部分に16進数4桁でUnicode(コードポイント)を記述する。コードポイントが16進数4桁以上の場合は、サロゲートペアで記述する必要がある。Ver.8.52以降)????????の部分に16進数8桁でUnicodeを記述する。(コードポイントをそのまま記述可能。足りない桁は"0"で埋める事。使って検索する「動作環境」−「ユーザーインターフェース」−「検索での表示」で、「範囲選択」が選択されている必要があります。ちなみに、この選択状態は、searchmodeキーワードで知ることができます。レジストリを書き換えないで、一時的に変更することが可能です。移動した場所まで範囲選択状態になります。動作的にはおかしいけど、現状(2004/05/22)においては仕様ということです。解除されない場合にカーソル移動を行うと思わぬ結果になるので注意。範囲と重なっているか否かに関わらず)範囲選択は解除されます。できるようになりました。省略した場合は0と見なされる。)秀丸エディタVer5.00β4より、gettext2文が追加されました。指定を行うところです。seltopx〜selendyキーワードではなく、foundtopx〜foundendyキーワードを使うといいでしょう。エディタVer.4.10より、ウィンドウのタブ化が可能になりました。Ver.5.00より複数タブウィンドウにも対応しました。タブとして追加されます。新規のタブウィンドウとして開く場合は、起動オプション"/i"を指定します。settabgroup文を使います。タブ間の移動にはnexttab(次のタブ)、prevtab(前のタブ)を使います。Ver.4.00系は、複数タブウィンドウをサポートしていないので、通常の移動命令で切替が可能です。アクティブなタブウィンドウに追加される為、座標指定自体が無効化されます。タブモード時は、"ウィンドウサイズを自動調整する設定"が無効化されます。エディタVer.4.10以降から、"常に手前に表示"が追加されました。"常に手前に表示"の設定も引き継がれます。保守マクロである「magickey_cfg.mac」のセット。追加機能として、多段階のキーストローク設定が可能。0.03作例2で紹介されている"KEY_ASIN.MAC"の機能拡張版。拡張子毎の割り当て変更、多段階のキーストローク設定が可能。以上の独自コマンド群(マクロ)がセットになっている。以降で使用可能なマクロです。ひとつのキーに対し、ファイルタイプごとに異なる機能を割り当てるひとつのキーに複数の機能を割り当てて、メニューで選択するひとつのキーに複数の文字列挿入機能を割り当てて、連打で循環する1行マクロを設定ファイルに直接書く等の機能があります。「秀丸エディタ」Ver.6.00grepdialog2文を追加。grepdialog2文のresultはgrep文と同じになるようにする。排他制御(同じファイルを開く場合)と「検索での表示」の指定。パラメタを拡張してステータスバー、見出しバー、タブモードのタブ名の指定可能にした。getfocus追加。(値=1:編集エリア,2:アウトライン解析の枠,3:検索ボックス,またはウィンドウハンドル)setfocus追加。失敗時にresultを返すようにする。iskeydownを拡張してキーのトグル状態を取得できるようにする。パラメタを指定して1ページを修正して加算する行数を指定できるようにする。loadhilightのresultで読み込まれた内容のフラグを返すようにする。ヒストリに常駐の状態を取得/設定できるようにする。iconthistabを追加。"x:〜";とgetconfig()で指定できるものに、以下のものを追加。「秀丸エディタ」Ver.6.50「次の秀丸エディタも続けて...」と「置換の前に確認」は併用できないように仕様変更。「秀丸エディタ」Ver.7.00追加された命令の詳細は、マクロヘルプを参照して下さい。拡張パラメタで属性の取得を可能にした。カラーマーカーの検索、取得gettitle文追加findhidemaruを、短縮名でも可能にした。toupper(),tolower()で、第二パラメタを追加し、対象を指定できるようにした。「秀丸エディタ」Ver.7.00wordleft2を追加して、wordleftはV6.xx以前と同じ動作にする。nexttabでマクロ制御切り替えできるようにした。saveasでの、改行指定の動作とバージョンによる違いあり。マクロ関連の変更履歴Ver.8からVer.7からの変更点は、かなり多い為、変更内容については、サイトー企画のページを参照してください。ある、「マクロ」の項目を参照して下さい。ある、「マクロ」の「・変更,パラメータ追加」を参照して下さい。マクロ関連の変更履歴Ver.8.00からVer.8.10からの変更点として、主なのは、DirectWrite対応です。「秀丸エディタ」Ver.8.10追加キーワードformline(整形ラインの表示の有無)その他マクロ実行時、常駐秀丸のメニューから中断できるようにする。「秀丸エディタ」Ver.8.10変更、パラメータ追加等saveconfig文で一時的な状態のアウトライン解析の枠も保存するようにする。setfilehistで空の文字列で最後のヒストリを消した場合、レジストリにゴミを書かないようにする。「秀丸エディタ」Ver.8.11その他dllfuncのパラメータで、16KBの制限を無くす。openbyhidemaruで開かれた秀丸エディタにマクロの切り替えが移らなかったのを修正。「秀丸エディタ」Ver.8.11変更、パラメータ追加等searchdownしたときもprevposの直前の位置の対象にする。「秀丸エディタ」Ver.8.12その他マクロの実行時のエラーが出たとき、逆コンパイルした内容を表示する。run文などでプログラム実行中にプログラム実行を中断した場合はマクロも終わらせる。キーワード変更、パラメータ追加等カーソル移動後タイマーのイベントマクロで、geteventparam(4)にて、どういうコマンドによってカーソル移動したかが分かるようにした。0x20000;」にて、マクロ内で検索系コマンドを実行しても、マクロが終了したら自動的に検索条件を元に戻せるようにした。その他マクロのfilter文およびfilter関数で、変換モジュールの名前の「.hmf」または「.hmf64」を省略して指定しても大丈夫なようにした。正規表現での置換の時に、\(0,ToUpper)のような形で変換モジュールの関数呼び出し出来るようにした。「動作環境」で、マクロ変数の上限サイズを指定出来るようにした。GetUpdated関数追加。やり直し」で指定した方法でundoするようにした。nextoutlineitem,prevoutlineitemで、パラメータを指定して「自動的な選択/部分編集の対象」がOFFの見出しにもジャンプできるようにする。キーワードで持ち出しキットで動作中かどうかのビット追加。パラメタを指定して連続した単語を指定可能にする。キーワードでプログラム実行中のウィンドウは"executing"を返すようにする。0x80000;でマクロ実行後にもカーソル移動後と編集後の自動起動マクロを動かせるようにする。常駐の状態を取得/設定できるようにする。-1を指定することで最大数を取得できるようにする。第3パラメータに2を指定することで使用数を設定できるようにする。相当の値を数値でパラメーター指定できるようにする。タグジャンプによって開かれたかを判断できるようにする。文の第一パラメータで10以上も指定できるようにする。標準出力のパラメータに8を指定してアウトプット枠に追加できるようにする。範囲選択を解除しないようにする。カーソル位置が移動しないようにする。パラメータ省略時はカーソル位置のカラムを選択する。getcolormarkerで幅ゼロまたは終端の情報を取得できるようにするパラメータ追加。第3パラメータでBOMを指定できるようにする。相当のフラグを数値指定できるようにする。その他BOX選択でも一時的なカラーマーカーとcolormarker文を適用可能にする。colormarker文などでレイヤーを持たせることができるようにする。マクロの変数が多いときの速度改善。検索でマッチする箇所を色付けする。カラーマーカーをつけた箇所を選択する。(複数あれば、複数選択となる。範囲選択箇所を反転する。(範囲選択した箇所と、それ以外の箇所を入れ替える。文」で「複数選択の候補」に設定した箇所を、複数選択状態にする。選択範囲を「複数選択の候補」から解除する。すべての「複数選択の候補」を解除する。現在の検索条件にマッチする箇所を、すべて複数選択状態にする。現在の範囲選択を複数選択に切り替える。範囲選択が含まれる行すべてを行単位の選択にしてから、行選択モードに移る。パラメータに1を指定すると、範囲選択が含まれる行を、すべて行選択にしてコピーする。パラメータに1を指定すると、範囲選択が含まれる行を、すべて行選択にしてカットする。パラメータに開始位置と終了位置を指定可能にした。(範囲選択していなくても、指定した箇所にカラーマーカーをつける。第二パラメータに2を指定すると、ファイルサイズを取得可能にした。ファイルサイズは、マクロの数値範囲である2G(2147483647)が最大となる。存在しないファイルを指定した場合は、0(zero)が取得できる。colormarker文で、スタイルに-1を指定もできるように修正。プログラム実行のパラメータにUTF-8を追加。run文のコマンドラインに%cや%lを書けるように修正。デフォルトで(未指定時に)使用されるレイヤー名は、"\x01#allfound"というレイヤー名になる。カラーマーカー関連の命令では、このレイヤー名を指定するか、"findmarker"というオプション指定することにより、操作可能。「秀丸エディタ」Ver.8.40複数個所の同時選択&同時編集対応。マクロファイル用のフォルダ、設定ファイル用のフォルダ設定で、環境変数を使用可能にした。自動スペルチェックの切り替え。(V6.50以降の動作)COMPFILE文をマクロヘルプに追記。パラメータで対象文字指定の対応。tolower関数で対象文字指定の対応。toupper文にパラメータ指定を追加。forwardtab,backtabでカーソル移動したかどうかでresultが設定されるように修正。saveall文にパラメータを指定できるようにして、無題ファイルを除外できるように修正。deletecolormarker文で、ユーザーデータを指定して範囲選択せずに直接消すパラメータの対応。prevresultにパラメータ追加して、対象を指定できるように修正。その他マクロファイルのUTF-8(BOM付き)対応。case」「大文字<->小文字の変換」コマンドはアクセント記号などが付いたものも対象にするように修正。「秀丸エディタ」Ver.8.52追加マクロの文字列で\Uxxxxxxxxと書いて8桁の16進数で4バイトのUnicodeを記述できるように対応。ファイルタイプ別の設定を識別するための拡張子を設定。ファイルタイプ別の設定の状態を指定。正規表現のメタ文字をエスケープした文字列を返す。ウィンドウの分割されている場合、分割位置を表す。変更、パラメータ追加等split文で明示指定するパラメータ追加。パラメータ指定して、「スクロールしてもカーソル位置を固定」モードに明示的にできるようにするように修正。"x"で指定できるものにBlockquoteFix(指定桁数をインデントする)を追加。macrohelp文でパラメータでキーワードを指定して開くことができるように修正。insert文の第2パラメータに2を指定可能にして、自動アンインデントの対応。saveconfig文で「折りたたみ用の余白」の一時的な状態を解除されるように修正。文字列書式に従った文字列を返す。追加の条件の「指定の範囲/カラーマーカー内」が有効な場合、対象となる範囲を指定。settargetcolormarkerで指定されている文字列を取得。(iniファイル関連のUnicode対応版)DDE関連マクロのUnicode版を追加。現在のカラーマーカーの状態をやり直し可能にする。getresultex(15)で置換の確認ダイアログがどのようにして閉じられたかを得られるようにした。追加の条件で「指定の範囲/カラーマーカー内」が有効かどうかの判定を追加replaceallなどでaskオプション指定時、置換を実行した回数をresultに入れるように修正。searchoption2相当も記述できるように修正。「前のカーソル位置」を変更させないフラグを追加。saveas文とappendsave文にselectionオプションを追加appendsave文でファイルが無いときは自動的に作成されるように変更。appendsave文でselectionオプションを付けているとき通常の範囲選択でないときはエラーになるように修正。localgrep文でもoutputsingleとoutputsametabが働くように修正。setcompatiblemodeの「貼り付け後のカーソル位置」のフラグを、insertfileでも適用するように修正。BOX範囲選択開始(複数選択化)変更、パラメータ追加等その他configset文で文字列をうまく解釈できないことがあるバグ修正。「秀丸エディタ」Ver.8.62その他openbyshell文でダブルクォーテーションでくくった場合に動作しないバグ修正。秀丸エディタ本体の更新内容に関しては、以下になります。DLLが解放されるタイミングで呼び出される関数を設定します。現在のエンコードの種類に対応するコードページ外部DLLから秀丸エディタのテキスト取得などをできるエクスポートされた関数を追加。テキスト全体のメモリ確保して返す。指定した行番号に対応するテキスト内容をメモリ確保して返す。カーソル行とカーソル桁の位置を取得。キー入力があるなどの理由で処理を中断するべきかを返す。範囲選択のテキスト内容をメモリ確保して返す。指定したテキストのマクロを実行。dllfunc等が呼ばれているとき、どのような呼ばれ方をしているかを取得。マクロの文字列でR"(文字列)"またはR"xxx(文字列)xxx"といったエスケープなしの書き方に対応。multiselectcountキーワード追加。複数選択時、選択されている個数を表します。setcompatiblemode関数追加。setcompatiblemode文と同じ、戻り値として直前の値を返す。compatiblemodeキーワード追加。0x00800000を追加してdisabledraw時の検索後のカーソル状態が正しくなるように修正。seltopxなどで添え字を付けて複数選択の各選択の場所を得られるように修正。execmacroでパラメータを配列と数で指定できる方式を追加。config文のxColorCommentで指定できるものに自動判定に相当するものを追加。getclipboardとgetfocusはパラメータなしの関数の書き方として呼び出してもいいように修正。input関数で第1パラメータの文字数や行が多い場合ある程度ダイアログを大きくするように修正。変換モジュールまたはDLL向けの秀丸エディタへのメッセージでファイル名を取得できるHIDEMARUINFO_GETFILEFULLPATHを追加。#c;のような記述間違いで警告を出すように修正。filename3などがUnicodeを含むファイル名のときに短縮ファイル名にならない問題修正。マクロの文字列で意味の無いエスケープ文字で警告を出すように修正。マクロで式がおかしいときのエラーで英数字だけでなく表示できる文字はエラーのメッセージ内に表示する修正。sprintf関数で64bit版の場合は%lldや%I64dなどの書き方は制限しないように修正。64bit版でマクロのビット演算子の修正。「秀丸エディタ」Ver.8.67その他32bitの浮動小数点数版でHidemaru_GetDllFuncCalledTypeが正しくないバグ修正。64bitの浮動小数点数版でDLLの呼び出しがうまくできていないバグ修正。「秀丸エディタ」Ver.8.69その他seltopx[n]など複数選択のとき、タブ文字の計算がずれるバグ修正。UTF-8のマクロファイルで$a=hex('あ');などを実行するとエラーになるバグ修正。getautocompitemのバグ修正。getconfig("AutocompFlag2")の誤り修正。「秀丸エディタ」Ver.8.71追加message関数追加。savebacktagjump文追加。変更、パラメータ追加等message文でタイトルやフラグのパラメータを指定できるように修正。geteventparamで破棄して終了による終了かどうかを知ることができるように修正。event==0のときseteventnotifyで枠にフォーカスがあるときにキー操作を続行するかどうかを追加。getcolormarkerで、先頭から数えて何番目にあるカラーマーカーか取得できるように修正。multiselectcountで複数選択の数を取得するとき一時的な選択状態は変化させないように修正。wordrightsalnen2でresultは変化するように修正。ascii関数で第2パラメータを指定して変換できない文字で0を返す動作を追加。spellcheckdialog文で、操作結果をgetresultexで取得できるように修正。その他multiselectcountでBOX選択1つのときに落ちるバグ修正と、BOX選択の維持の修正。標準の変換モジュールをマクロのfilterで使うとき、マクロファイルがUnicodeの場合に文字列をうまく解釈できない場合があるバグ修正。「秀丸エディタ」Ver.8.73追加エクスポートされた関数にHidemaru_GetCursorPosUnicodeFromMousePosを追加。エクスポートされた関数にHidemaru_GetCurrentWindowHandleを追加。変更、パラメータ追加等マクロでseterrormodeのパラメータを追加して、一般的なOKだけがあるメッセージを抑制するオプション追加。DPI対応で動作させるフラグ追加。runex文にパラメータを追加して、ファイル名の%fなどの解釈をしない指定の対応。その他appendsaveのselectionオプションで折り返しがあると異常終了するバグ修正。起動オプション/x?を追加。「秀丸エディタ」Ver.8.75追加dllfuncexist関数追加マクロ実行するメッセージ関連を追加。(WM_ISMACROEXECUTING,WM_REMOTE_EXECMACRO_FILE,WM_REMOTE_EXECMACRO_MEMORY)setoutlinesize文とoutlinesizeキーワードを追加。prevposx,prevposyキーワード追加。変更、パラメータ追加等savedesktop文とrestoredesktop文にパラメータを追加して仮想デスクトップごとを許可するかどうの対応。message文でタイムアウトするパラメータ追加。autocompstateキーワードに、英字の文字入力の直後でカーソル移動していない状態かどうかを判断するフラグを追加。その他run文で引数の文字数が多くて切れるようなケースではエラーとなるように修正。colormarkerallfound文で見出しバーが無いとき画面全体がちらつく問題修正。「秀丸エディタ」Ver.8.77追加アウトプット枠のHmOutputPane.dllの関数にSetBaseDirを追加。変更、パラメータ追加等run文で引数も含めて約8KB分のコマンドラインを使えるように修正。2;とするとdebuginfoでの文字列の出力はアウトプット枠にも出力するように修正。setdlldetachfuncで指定して呼ばれる関数に、どのような理由で呼ばれたかを表すパラメータを追加。その他showvarsで配列の角括弧の後半が無い問題修正。マクロの文の記述に半角括弧を使った場合のエラーメッセージがおかしい点を修正。「秀丸エディタ」Ver.8.79追加deletefilehist文、filehistcountキーワード追加。変更、パラメータ追加等setfilehistで、失敗したときはresultで判断可能なように修正。openbyshellで「microsoft-edge:」から始まる文字列でEdgeが起動できない問題修正。openbyshellで「"shell:〜"」から始まる文字列で、続いてパラメータが付加されているときの対応。その他マクロ登録ダイアログをリストビュー形式に変更。マクロ登録ダイアログのマクロファイル用のフォルダに開くボタンを追加。grepの実行/grepして置換のキー操作の記録はgrepdialog2/grepreplacedialog2として記録されるように修正。「秀丸エディタ」Ver.8.81追加movetoview文xviewキーワードcarettabmodeキーワードShiftキーを押しながら矢印キーを押すことに相当する文を追加。起動オプション「/m3x」で既存の秀丸エディタに切り替わるとき、/xの組み合わせで/aの情報も引き継ぐように修正。変更、パラメータ追加等setstaticvariable文で現在の秀丸エディタ用は32KBまでできるように修正。colormarker文で任意の名前のレイヤーは32個までできるように修正。selectcolormarker文にユーザーデータの指定のパラメータを追加。config文の"x"で指定できるものにActiveTagPairを追加。closenewしたときは動作環境の最初のフォルダの設定は働かないように修正。(newfileは従来から働かない)setstaticvariableで個数の上限を超えたとき正しく失敗するように修正。openregにパラメータを追加し、HKEY_LOCAL_MACHINE\SOFTWARE配下を明示的に32bit/64bitを指定できるように修正。「秀丸エディタ」Ver.8.85追加ファイルマネージャ枠のマクロのdllfuncstr用の関数で、HmExplorerPane.dllにGetCurrentDirを追加。関数で、第1パラメータに0x0100のフラグを追加し、表示に使われている名前付きレイヤーの情報を取得できるように修正。insert文の第3パラメータでインデントの詳細設定を指定できるように修正。selectcolormarkerで対象が無い場合にresultが変化するように修正。menu文などのサブメニューの記述対応。input関数に位置を指定するパラメータ追加。その他seterrormodeの指定でcallでラベルが見つからないときにエラーを無視できるように修正。「秀丸エディタ」Ver.8.85マクロファイル用のフォルダと設定ファイル用のフォルダは、インストール直後の初期状態は%APPDATA%という環境変数を使って表現するように変更。-1;による操作はリアルタイム入力は無効となるように変更。マクロ関連の変更履歴Ver.8.86は、マクロ関連の変更はありません。「秀丸エディタ」Ver.8.87その他Ver.8.85、Ver.8.86で、runsync文の待機中にしばらくすると待機が終わる問題を修正。キーワード変更、パラメータ追加等inputchar関数で、第2パラメータでタイムアウトを指定できるように修正。inputchar関数で、第3パラメータを指定して、タイトルを変更しないこともできるように修正。selectcolumn文で行の範囲のパラメータ追加。overwrite文のパラメータ追加。環境変数が展開可能な条件では自動的に展開されたものが取得されるように修正。その他マクロに書く固定の文字列の長さの最大は64KBから128KBまでに変更。runexで表示フラグで非表示を指定の場合は、実行後に秀丸エディタ本体を再アクティブにしないように変更。記憶されていた固定の折り返し文字数となるように変更。filter文では、デフォルトでエラー表示し、エラーが出ない場合やfilter関数では、getresultexで取得可能にした。filter文で、変換モジュール名が拡張子なしの場合、\[動作環境\]→\[編集\]→\[変換\]で登録されていたフルパスを読み込むように修正。setfiletypeで指定したものとなるように変更。変更、パラメータ追加等その他ファイルタイプ別の設定のデザインの「カーソル位置の単語」がONのとき、colorcodeでカラーマーカーの0x8000が取得できない問題修正。マクロのカーソル移動後タイマーのgeteventparam(4)は、検索ダイアログで上検索/下検索したときも取得できるように修正。config文でフォントを変更してsaveconfigするとき、Unicodeのファイルで記憶されない問題修正。カーソル移動後タイマーの自動起動マクロで、geteventparam(5)で最後に実行した上検索/下検索が成功していたかを取得できるように修正。マクロ実行中にカーソル行の下線や縦線を描画できるフラグを追加。文のパラメータで指定した設定名で保存できるように追加。第2パラメータを追加して、他の秀丸エディタからの取得もできるように修正。1で「現在のファイルのマークを解除」を行う。指定している場合はアウトプット枠へ出力するように修正。codepageキーワードのUTF-32は12000(UTF-32LE)と12001(UTF-32BE)に変更。その他eplayキーワードがsearchdownの後におかしい問題修正。configset文でステータスバーのファイルタイプ別の設定の状態が更新されるように修正。スタイルが指定できるように修正。追加の条件(0x00800000)がOFFにならない問題修正。浮動小数点数バージョンでshowvarsの数値が出力されていなかった問題の対策として、小数点数以下3桁まで表示するように修正。秀丸上での複数行にまたがる検索について説明追加hmjre.dllは、"$"が、テキストの途中に現れる"\n"にもマッチします。その為、ファイル2にもマッチします。正規表現DLLに渡す行数を指定できます。(正規表現のコメント形式に基づく指示なので、検索には影響しない。説明追加hmjre.dllでは、タグ付き正規表現はPerlと同じく、括弧「()」を使用します。(V1.69より(秀丸エディタVer5.03以降))"\f"でのタグ指定は、現状(2015/06/03)でも有効ですが、内部処理的には、かなり面倒なことをやっているので、使わないほうがいいです。"\f"を使うメリットはないです。(検索パターンにもよりますが、最低でも15〜20%程度遅くなる。)"\f"と、括弧を使ったタグ指定の整合性をとるために、hmjre.dllのタグ指定には、制限があります。括弧での指定)を参照。タグ参照はできません。..\f-\0正規表現が有効で、検索に"\f"が含まれる場合、タグの処理は秀丸エディタ本体が行います。検索に"\f"が含まれない場合、括弧によるタグの処理は、正規表現DLLで行われます。"\f"と括弧が混在するタグ指定は出来ません。混在した場合は、秀丸エディタ本体で"\f"を処理する都合上、"\f"が優先され、括弧は無視されます。正規表現スピードチェック実行結果を更新64bit対応についてマクロ用DLLと異なり、正規表現エンジンは、使用する秀丸エディタと同じbitのDLLしか使えません。秀丸エディタの場合、正規表現DLLは、32bitのDLLしか使用できない64bit対応しているのは、hmjre.dll、hmonig.dllです。JRE32.DLL、BRegIf.dllの64bit版はありません。hmjre.dll秀丸エディタの正規表現エンジンは、JRE32.DLLからhmjre.dllに変更になっています。hmjre.dllはJRE32.DLLに対して、以下の拡張が行われています。以上の機能が、追加されています。詳細は、hmjre.dllのヘルプを参照してください。BRegIf.dll+BREGEXP.DLLBREGEXP.DLLを使うことにより、Perl互換(1996/05/25辺りのPerl5)の正規表現が使えます。使用するにはBRegIf.dllが必要です。BRegIf.dllBREGEXP.DLLhmjre.dllに比べ、使用できる正規表現は増えますが、以下の制限があります。あいまい検索が使用できない。BRegIf.dll独自機能の関係で、エスケープが必要な文字が増える。括弧を使用した場合でも、置換で"\1"によるタグ参照が可能です。"bregonig.dll"を認識し、"bregonig.dll"-->"BREGEXP.DLL"の順番でDLLのロードを試みます。明示的に"BREGEXP.DLL"を使用したい場合は、"bregonig.dll"をリネームするか、削除しておく必要があります。BRegIf.dll+bregonig.dllbregonig.dllを使うことにより、鬼車の正規表現が使えます。使用するにはBRegIf.dll(v0,0,2,2)が必要です。BRegIf.dllbregonig.dllBRegIf.dll+BREGEXP.DLLと同じ制限があります。bregonig.dllのインターフェースが、"BREGEXP.DLL"と同じであることを利用して、動作させています。"bregonig.dll"-->"BREGEXP.DLL"の順番でDLLのロードを試みます。ないとは思いますが、"bregonig.dll"のロードに失敗した場合、"BREGEXP.DLL"が使用されることになります。"bregonig.dll"を使用する場合は、"BREGEXP.DLL"を削除、またはリネームしておいた方がいいかもしれません。サブパターン選択を使用する場合は、Version.1.41以降が必要です。bregonig.dllは、Unicode対応版のVer.2.00以降がありますが、BRegIf.dllからは、Unicode対応のAPIは呼び出していません。hmonig.dllhmonig.dllを使うことにより、鬼車の正規表現が使えます。(使用できる正規表現や、制限事項等は、hmonig.dllのドキュメントを参照)hmonig.dll以下の制限があります。あいまい検索が使用できない。(Ver.0.5.6.0以降は、hmjre.dll経由で使用可能)ブラケット内の"\uxxxx"には対応していない。Ver.4系の動作検証用マクロ(秀まるお氏作成)を、ちょっと改造したマクロの実行結果です。以下のDLLをロードし、実行しています。Ver.8.3.0実行したマクロと実行結果(2019/08/31更新)結果が「-1」なのは、チェックをスキップした場合です。測定結果10回分の平均値です。否定文字クラス一致して欲しくない文字の集合。指定された文字に一致しない文字にマッチする。"\n"も含め、"一致しない文字"全てにマッチします。("."と違い、"\n"を含めたくない場合は、明示的に指定する必要あり。====追加にすると、最後のファイ名の所で、改行文字までマッチします。括弧での指定)一般的(?)な正規表現と違い、ネストした括弧に対応していないので注意。浅い括弧をタグと認識する。\2(ccc)はタグと認識しない。み、否定先読みとも呼ばれています。"^"や"$"と同じアンカーで位置にマッチする。単独で指定した場合は、"文字"にマッチしないので、「検索文字列の強調表示」しても強調表示されない。"A"でない文字の先頭にマッチする。"Editor"が後ろにある、"Hidemaru"にマッチする。後方不一致/否定先読みの例3最後にある必要はなく、以下のような書き方もできます。「"000"が前にない3桁の数字」ではないので注意。次の正規表現のチェック開始位置を動かさない。数字が3桁連続しているかチェック上記、(1)と(3)は、正規表現のチェック開始位置は、同じです。後方一致/肯定先読みではない場合は、000[0-9]{3}"000"であるかチェックマッチした場合は、マッチ範囲分だけ、次の正規表現のチェック開始位置をずらす。数字が3桁連続しているかチェックという動作になります。両方の条件を満たす場合のみ、マッチするような動作になります。み、否定後読みとも呼ばれています。"^"や"$"と同じアンカーで位置にマッチする。単独で指定した場合は、"文字"にマッチしないので、「検索文字列の強調表示」しても強調表示されない。"A"の最後(末尾)にマッチする。"後読み"と言われているように、最後にマッチ判定を行います。(<=aaa)にマッチするか判定する。使用するDLLによって、制限があるので注意すること。先頭にあること可変長の指定はできない。秀丸エディタの機能で、条件に一致しない行を列挙可能になっています。パターンの否定が出来ます。(詳細は添付されているテキストファイルを参照)hmjre.dllの場合は、後方不一致指定を使えば可能。^((?!一致しない文字列).)+$参考サイト:正規表現パズル一致しない条件が一文字または、どれか1文字という場合は、^[^a]+$という、否定クラスを使う方法もあります。以下の正規表現は、"ab"を含まないという表現にはならないので、注意すること。(正規表現は処理系毎に、微妙に異なることが多い事と、多言語対応による。数字が含まれない事と、文字ではなく、文字列にヒットします。