update : 2012/11/18 (Sun)
秀丸エディタには、「秀丸エディタQ&A集 制作しよう会」が作成した 「秀丸エディタQ&A集(第7版)」 があります。しかし、内容が秀丸エディタVer.4.00までくらいしか対応していません。
秀丸エディタは、2012/05/19 現在、
となっており、Q&A集の内容と一致しない箇所等があります。
このページは、秀丸エディタのバージョンアップ等により、 「秀丸エディタQ&A集(第7版)」 と一致しない内容についてのメモです。秀丸エディタQ&A集(第7版)と一緒に見てください。
本来なら「秀丸エディタQ&A集(第7版)」を、 現在のバージョン用に更新できればいいのですが・・・。
今なら、wikiに移行するって方向もあるかも知れないが、データ変換(?)->移行するための手間とか メンテナンスを考えると難しいかな?
Ver.8は追加・変更が多いので、サイトー企画にある、秀丸エディタの紹介(Ver8.00対応版)を参照してください。
秀丸の瞬間起動機能は、歴史的には、ver.2.00(32bit版)が出来たとき、 以前の ver.1.48 までの16bit版に比べて 秀丸の起動に時間がかかってしまうのを改善するために設けられた設定です。 一旦起動した秀丸をリサイクルすることにより、新規にプロセスを起動するよりも速く秀丸のウィンドウを開くことを可能にしています。
説明追加
OSのシステムリソースに関しては、NT系OS(Windows NT、2000、XP以降)では、大幅に改善されています。 特に理由がなければ、常駐機能はONにしておきましょう。
瞬間起動の ON/OFF は、「メニューの「その他」->「動作環境」の「常駐機能」で行います。
動作環境(Version.7.10) └常駐機能 └□秀丸エディタの常駐
説明追加
直接、ワープロソフトで作成したファイルに、grepを実行するのは無理ですが、テキスト要素をのみ取り出して、 grepする方法もあります。
EB series support pageにある、 「xdoc2txt」を使用すれば、PDF,WORD,EXCEL,一太郎などの各種バイナリ文書からテキストを抽出可能です。
説明追加
Unicodeを使用している場合は、「[亜-K]」では、全ての漢字を検索することはできません。 Unicodeで漢字のみを示す正規表現は、かなり長くなります。
[\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u3005\u3007\u3021-\u3029\u3038-\u303B\u3400-\u4DB5\u4E00-\u9FC3\uF900-\uFA2D\uFA30-\uFA6A\uFA70-\uFAD9]
本来なら、サロゲートペア領域も、
[\u20000-\u2A6D6\u2F800-\u2FA1D]
指定する必要がありますが、hmjre.dllでは、四桁以上の場合、そのままでは指定できません。
これでは長いので、適当に省略してみました。(サロゲートペア領域は含まない)
[\u3400-\u9FC3\uF900-\uFAD9]
説明追加
hmjre.dll Ver3.38(秀丸エディタ Ver8.10β4、秀丸メール Ver5.70β22)より、\u{xxxxx}という形式で、
16進数の文字コード(Unicode)を、指定することが出来るようになりました。
その為、サロゲートペア領域は以下のように指定することができます。
[\u{20000}-\u{2A6D6}\u{2F800}-\u{2FA1D}]
内容変更
秀丸のver.2.x以降は各種設定をレジストリに保存しているので、 ファイルに設定を書き出すことができるもの以外は移行できません。
ファイルとして保存できる項目は、
が、あります。
強調表示 (※ver.3.0以降)
「その他」→「ファイルタイプ別の設定」の「デザイン」から、[保存/読込] ボタンで行います。
ファイルは「設定ファイル用フォルダ」に保存されます。
(未設定の場合は、秀丸エディタをインストールしたフォルダ)
Ver.7.00以降、秀丸エディタ本体の機能拡張にあわせ、強調表示ファイルには、 現在は以下の定義(設定)を保存/読込することが出来ます。
上記を含めたほぼ全ての設定 (※ver.3.06 以降)
Ver.7.00以降では、秀丸エディタ本体メニューより、設定の保存/復元をおこないます。
「その他」−「設定内容の保存/復元」
HMSETUP.EXEを単独で起動させると、インストールが始まってしまうので、必ず、秀丸エディタ本体メニュー から実行してください。
なお送金したかどうかは保存されませんので、暗証番号は、別途紙に書き留めるなどして保存しておいてください。 また各々の拡張子「key」「hilight」「reg」「hmereg(Ver.8より)」は、付いていなければ自動的に付加されます。
参考資料(Ver.8ヘルプファイル)
内容の訂正
.hilight の\n に関してはダメとヘルプに書かれています。(強調表示文字列のプロパティ)タブ文字 \t もだめです。 強調表示文字列の中では\tは意味が無いです。秀丸エディタがタブを空白に変換して、 その変換された文字列を元に検索処理されるので、タブ文字には何もヒットしません。
強調文字の処理を行う上で内部的には、タブ文字は表示上の桁数分の空白に変換されます。 例えばタブの桁数が4桁なら、タブ文字1個は1〜4個の空白に変換されます。
Ver.4.00からは強調表示に「\t」を使うことができます。
説明追加
秀丸エディタVer.5.00より、ファイル名と思われる場所、URL、メールアドレスと 認識する文字列は、正規表現によるカスタマイズが可能になりました。 デフォルトでは自動認識になっていますが、「ファイルタイプ別の設定」-> 「表示とカラー」から、変更したい箇所を選択すると「カスタマイズ」ボタンが 表示されるので、正規表現を指定してください。
URL、ファイル名をリンクにしたくない場合は、「表示とカラー」で無効にしたい箇所のチェックを、 外して下さい。
説明追加
秀丸エディタVer.7.00より、設定の場所が変更になりました。
ファイルタイプ別の設定(Version.7.00) ├デザイン │├場所の一覧 │││├□ファイル名と思わしき場所 │├表示 ││├□ファイル名と思わしき場所のカラー表示(&F) │││└《Email, URL, ファイル名のカスタマイズ...》
「場所の一覧」か「表示」のどちらでもかまいません。 「場所の一覧」の場合、項目を選択すると、プロパティ枠内に、「カスタマイズ」が表示されます。
説明追加
秀丸エディタ Ver 5.00から変換モジュールが導入されました。 変換モジュールライブラリに「Sort」があります。 この変換モジュールを導入すれば、秀丸エディタでソートが可能になります。 (変換モジュールはマクロからも使用できます。)
説明追加
秀丸エディタ Ver 8.00から、ソートは、標準添付の変換モジュールに組み込まれたため、 別途、変換モジュールを追加する必要はありません。 また、TSV/CSV用に、タブ、カンマ区切りに限り、フィールドでソートが可能になってます。 (TSV/CSV用ですが、通常のファイルでも使用可能)
変換モジュールの使い方・設定方法は秀丸エディタ設定を参照してください。 マクロから変換モジュールを使う方法はマクロから変換モジュールを呼び出す方法を参照してください。
注記追加
Windows(2000、XP)標準のsort.exeは、英文字の大文字・小文字を区別しません。 その為、「sort < con > con」を実行しても、期待する結果にならない場合があります。
説明追加
先頭からではなく、途中からソートしたい場合等は、Windows標準のSortではなく、 UNIX系のSortを使えば可能です。 ( Windows標準のSortでも可能ですが、先頭からの文字数を指定するだけなので、固定長以外では使えない。 UNIX系ソートの場合、フィールドの区切り文字を指定し、フィールドでソートすることも可能。 ) UNIX系のソートは以下のURLから入手可能です。
(sort option < con > con の形式で実行してください。)
テキストファイルの内容
cccc 50 bbbb 200 dddd 100 aaaa 20 eeee 8
先頭からソート
aaaa 20 bbbb 200 cccc 50 dddd 100 eeee 8
第2フィールドでソート
dddd 100 aaaa 20 bbbb 200 cccc 50 eeee 8
第2フィールドで、数値としてソート
eeee 8 aaaa 20 cccc 50 dddd 100 bbbb 200
説明追加
秀丸エディタVer.5.00より、検索文字列を強調表示することが可能になりました。
ちなみに、「検索文字列の強調」も強調表示の一種であるため、改行を含む場合は強調表示されません。 (hidesoft.2:20700を参照) (秀丸ヘルプの強調表示文字列のプロパティ)
新規追加
「大文字<->小文字の変換」を使う。
「大文字<->小文字の変換」はカーソルのある文字だけを対象に、大文字<->小文字変換を行います。
A→a B→b
ただし、半角文字しか対応していません。
「編集」メニューの「変換」を使う。
「変換」メニューにある「UPPER CASE」が大文字変換、「lower case」が小文字変換になります。 変換機能を使うには、変換する文字範囲を、あらかじめ選択しておく必要があります。 「UPPER CASE」、「lower case」共に、半角全角文字を対象に変換を行います。
置換を使う
置換を方法もありますが、1文字単位でしか出来ません。 (正規表現を使っても。複数文字を同時に置換するのは無理です。)
Perl等で使用されている「tr/searchlist/replacelist/」のような、リストを使った置換は、 標準では出来ません。(田楽DLL+Bregexp.dllを使って、マクロを組めば可能かもしれない。) それと、エスケープシーケンス(テキスト修飾子)である、\l、\u、\L、\U等も使えません。
秀丸エディタ Ver.8.13β8より、置換時、検索結果に対し、変換モジュールの機能を実行できるようになりました。
「UPPER CASE」を指定すれば大文字変換、「lower case」を指定すれば小文字変換が可能です。
「置換で、変換モジュールの機能を使う」を参照してください。
新規追加
標準添付のHmFilter.hmfに含まれる機能(大文字・小文字変換等)は、以前のバージョンとの互換性から、 メニューやキーに割り当て可能ですが、それ以外の変換モジュールは、そのままでは、割り当てる事は、 できません。(追加する項目に存在しない)
メニューやキーに割り当てるには、マクロを経由する必要があります。 変換モジュールの機能を、マクロにするには、「キー操作の記録」と「キー操作の保存」を使います。
詳細は、秀丸エディタのヘルプ「目次− 動作環境− 編集−変換」にある、 「参考:変換モジュールをキー割り当てする方法」を参照してください。
新規追加
秀丸エディタのコマンドに「関連付けで開く」というコマンドが、用意されています。 この機能を使えば、編集しているファイルを、関連づけられたアプリケーションで開くことができます。
単純に、関連付け起動を行っているだけなので、ファイルを開いた時の挙動は、アプリケーションに依存します。
たとえば、htmlファイルで実行した場合、編集中のファイルを(保存する必要はあるが)ブラウザで開くことができますが、 同じファイルで、複数回の「関連付けで開く」コマンドを実行した場合、複数のブラウザが開くことになります。 (最初に開いているファイルをリロードすることはない。)
新規追加
秀丸エディタ Ver.8より、「ファイルを開く」ダイアログの初期状態が指定できます。 ただし、新規作成状態(無題の状態)か、常駐秀丸エディタから「開く」を選択した場合のみ、有効です。 (既存のファイルを開いている場合には、設定は無効になる。)
マクロを使う方法もあります。(ファイルを開くときのフォルダ指定を参照)
新規追加
説明追加
文字列から拡張子を取得したい場合 その2
hmjre.dllの正規表現関数を使う方法もあります。
hmjre.dllの使い方はマクロで使うDLLの hmjre.dllの使い方を参照してください。
注記追加
秀丸エディタの起動オプションで、"/c"オプションを指定した場合、 実際の拡張子と、filetypeで取得できる拡張子が一致しません。 これは、設定を強制的に変更している為の仕様になります。 (turukame.3:01568を参照)
説明追加
秀丸エディタVer.8.00より、文字変数の上限サイズが変更になっています。 文字変数全体で、最大1Mバイト(変数管理領域を含む)が、上限になります。 文字変数が1個なら、ほぼ1Mバイト使えます。 使用する文字変数が多くなれば、個別に使用できるサイズの上限は、各変数の使用状況によります。
説明追加
秀丸エディタVer.8.20β25 より、文字変数の上限サイズを、ユーザー側で設定可能になりました。 設定可能範囲は1M〜64Mバイトになります。
文字列を直接代入する場合等には、まだ4Kバイトの上限が存在します。 詳細は秀丸エディタマクロヘルプの「変数の使い方」 を参照して下さい。
説明追加
秀丸エディタ Ver 6.50(Ver.6.50ではなく、Ver.7.00として公開)から、 マクロに"toupper関数"が追加されました。 この関数を使えば半角小文字を大文字に変換できます。 また、同時にfilter関数が追加され、変換モジュールの"UPPER CASE(ToUpper)"も利用できます。 "UPPER CASE"の場合は、全角も対象になります。 秀丸エディタ Ver 7.04より、"toupper関数"でも、引数を指定することで、 全角も対象にすることが可能です。
その他に、dllを使う方法もあります。
説明追加
秀丸エディタ Ver 6.50(Ver.6.50ではなく、Ver.7.00として公開)から、 マクロに"tolower関数"が追加されました。 この関数を使えば半角小文字を大文字に変換できます。 また、同時にfilter関数が追加され、変換モジュールの"lower case(ToLower)"も利用できます。 "lower case"の場合は、全角も対象になります。 秀丸エディタ Ver 7.04より、"tolower関数"でも、引数を指定することで、 全角も対象にすることが可能です。
その他に、dllを使う方法もあります。
説明追加
秀丸エディタ Ver5.05以降、パラメータが追加されています。 2番目のパラメタを指定すると、自分自身のウィンドウの重なり位置を調節できます。
初期状態。アルファベット(a〜d)がウィンドウハンドル(ウィンドウ識別番号)、数字がウィンドウ順番です。
┏━━━━━━━┓ ┃d ┃ ┣━━━━━━━┫ ┃3 ┏━━━━━┻━┓ ┃ ┃c ┃ ┃ ┣━━━━━━━┫ ┃ ┃2 ┏━━━━━┻━┓ ┃ ┃ ┃b ┃ ┗━┫ ┣━━━━━━━┫ ┃ ┃1 ┏━━━━━┻━┓ ┃ ┃ ┃a ┃ ┗━┫ ┣━━━━━━━┫ ┃ ┃0 ┃ ┗━┫ ┃ ┃ ┃ ┗━━━━━━━┛
「次の秀丸エディタ」に切り替えるため、2番目のウィンドウをアクティブにする。(setactivehidemaru 1;) 単純に2番目のウィンドウ(b)が先頭に移動するだけなので、(a)と(b)が入れ替わるだけ。 再度2番目のウィンドウをアクティブにしても、(a)と(b)が入れ替わるだけで、(c)には移動しない。
┏━━━━━━━┓ ┃d ┃ ┣━━━━━━━┫ ┃3 ┏━━━━━┻━┓ ┃ ┃c ┃ ┃ ┣━━━━━━━┫ ┃ ┃2 ┏━━━━━┻━┓ ┃ ┃ ┃b ┃ ┗━┫ ┣━━━━━━━┫ ┃ ┃0 ┣━┓ ┃ ┃ ┃ a┃ ┗━┫ ┣━┫ ┃ ┃ 1┃ ┗━┳━━━━━┛ ┃ ┃ ┃ ┗━━━━━━━┛ |
←→ |
┏━━━━━━━┓ ┃d ┃ ┣━━━━━━━┫ ┃3 ┏━━━━━┻━┓ ┃ ┃c ┃ ┃ ┣━━━━━━━┫ ┃ ┃2 ┏━━━━━┻━┓ ┃ ┃ ┃b ┃ ┗━┫ ┣━━━━━━━┫ ┃ ┃1 ┏━━━━━┻━┓ ┃ ┃ ┃a ┃ ┗━┫ ┣━━━━━━━┫ ┃ ┃0 ┃ ┗━┫ ┃ ┃ ┃ ┗━━━━━━━┛ |
「次の秀丸エディタ」で順次ウィンドウを切り替えるには、先頭のウィンドウを最後に移動する必要があります。 第二引数を指定し、先頭のウィンドウを最後に移動させる。
┏━━━━━━━┓ ┃d ┃ ┣━━━━━━━┫ ┃2 ┏━━━━━┻━┓ ┃ ┃c ┃ ┃ ┣━━━━━━━┫ ┃ ┃1 ┃ ┃ ┃ ┏━━━━━┻━┓ ┗━┫ ┃b ┃ ┃ ┣━━━━━━━┫ ┃ ┃0 ┣━┓ ┗━┫ ┃ a┃ ┃ ┣━┫ ┃ ┃ 3┃ ┃ ┃ ┃ ┗━┳━━━━━┛ ┃ ┃ ┃ ┃ ┃ ┗━━━━━━━┛ |
→ |
┏━━━━━━━┓ ┃d ┃ ┣━━━━━━━┫ ┃1 ┏━━━━━┻━┓ ┃ ┃c ┃ ┃ ┣━━━━━━━┫ ┃ ┃0 ┃ ┃ ┃ ┣━┓ ┗━┫ ┃ b┃ ┃ ┣━┫ ┃ ┣━┻━┓ ┗━┳━┳━━━┛ a┃ ┃3 ┣━━━━━━━┫ ┃ ┃ 2┃ ┃ ┃ ┃ ┗━┫ ┃ ┃ ┃ ┃ ┃ ┗━━━━━━━┛ |
→ |
┏━━━━━━━┓ ┃d ┃ ┣━━━━━━━┫ ┃0 ┣━┓ ┃ ┃ c┃ ┃ ┣━┫ ┃ ┃ 3┃ ┃ ┣━┻━┓ ┗━┳━┳━━━┛ b┃ ┃ ┣━━━━━━━┫ ┃ ┃2 ┏━━━━━┻━┓ ┗━┫ ┃ a┃ ┃ ┣━━━━━━━┫ ┃ ┃ 1┃ ┃ ┃ ┃ ┗━┫ ┃ ┃ ┃ ┃ ┃ ┗━━━━━━━┛ |
説明追加
"nul"とはNULLデバイスの事です。NULLデバイスは、どのフォルダ(ディレクトリ)にも 存在するダミーのデバイスで、拡張子をつけても、同じ名前のファイルは(基本的には) 作成出来ません。 この性質を利用し、調べたいフォルダ(ディレクトリ)に、nulが存在するかどうかを 調べることで、フォルダ(ディレクトリ)なのかファイルなのかを、判定できます。
(2007/02/14追記)
NULLデバイスの有無で、フォルダかどうかの判断が出来ると書きましたが、
存在するファイルに"\\nul"をつけても、existfile()関数はtrueを返します。
//C:\TEMP\dummy.txt は存在しているファイルです。 if(existfile("C:\\TEMP\\dummy.txt\\nul)){ message "存在するフォルダです。"; }
回避方法としては、"\\nul"ではなく、"\\*.*"を追加するとよさそうです。 フォルダの下には"."と".."というフォルダが、自動的に作成される(?)為、 フォルダが空でも、"*.*"にマッチします。ファイルの場合は、マッチしません。
確実に判断したいなら、DLLを使いましょう。
(2007/05/07追記)
秀丸エディタ Ver.7.00β3より、existfile関数が拡張され、ファイルの属性が、
取得できるようになりました。existfile関数の戻り値を調べれば、フォルダ(ディレクトリ)
かどうかを確認できます。
#ATTRIBUTE_READONLY = 0x00000001; #ATTRIBUTE_HIDDEN = 0x00000002; #ATTRIBUTE_SYSTEM = 0x00000004; #ATTRIBUTE_DIRECTORY = 0x00000010; #ATTRIBUTE_ARCHIVE = 0x00000020; if((existfile(macrodir,1) & #ATTRIBUTE_DIRECTORY) == #ATTRIBUTE_DIRECTORY){ message macrodir + "はフォルダです。"; }
説明追加
現在の秀丸(Windows95以降対応バージョン)では、設定は全てレジストリに保存されています。 iniファイル関連の関数で、"HIDEMARU.INI"にアクセスすると、自動的にレジストリをアクセスするように なっていますが、これは16bit版秀丸との(マクロの)互換性のための動作です。 現状では、レジストリアクセス関数で、レジストリから値を取得する方がいいでしょう。
// (例) 引用符を取得するマクロサンプル --------------------- openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env"; if(result){ $inyoufuini = getregstr("RefMark"); closereg; #inyoufuiniLen = strlen($inyoufuini); if(#inyoufuiniLen <= 2){ $inyoufu = ""; }else{ $inyoufu = midstr($inyoufuini, 1, #inyoufuiniLen - 2); } message $inyoufu; }else{ message "引用マークの取得に失敗しました。\nマクロを終了します。"; } endmacro; // (ここまで)-----------------------------------------------
説明追加
秀丸エディタ Ver 5.00から変換モジュールが導入されました。 変換モジュールライブラリに「uniq」があります。 この変換モジュールを導入すれば、秀丸エディタで重複行の削除が可能になります。 (変換モジュールはマクロからも使用できます。)
変換モジュールの使い方・設定方法は秀丸エディタ設定の 変換モジュールを使うにはを参照してください。
正規表現を使う方法もあります。
検索文字:(^.+\n)\1 置換文字:\1
連続している行を1行にします。同じ行が複数連続する場合には、複数回実行する必要があります。
新規追加
新規追加
基本的には マクロのバグ(?)で、原因としては 以下の内容が考えられます。
他の人が作ったマクロの場合は、作った人に連絡するようにして下さい。
秀丸エディタ Ver.8.00を使用している場合、マクロにバグが無くても、 「DLLがロードされていないのにdllfunc関数が使われました」 と、表示される場合があります。(loaddll関数の場合を参照)
新規追加
浮動小数点演算を行うには、浮動小数点数版(統合版)が必要ですが、WSHを使えば、多少手間がかかりますが、 通常版でも浮動小数点演算が可能です。
"ScriptControl"を使用し、WSHで演算させて、文字列として、取り込みます。
#sc = createobject("ScriptControl"); if(#sc == 0){ message "オブジェクトの作成(ScriptControl)に失敗しました。"; endmacro; } setpropstr #sc,"Language", "VBScript"; if(!result){ message "プロパティの設定(Language)に失敗しました。"; endmacro; } $ret1 = callmethod_returnstr(#sc, "Eval","cstr(1.01+0.03)"); if(getresultex(10) == false){ message "Eval(1)の実行に失敗しました。"; releaseobject #sc; endmacro; } message $ret1; $ret2 = callmethod_returnstr(#sc, "Eval","cstr(1.155-0.03)"); if(getresultex(10) == false){ message "Eval(2)の実行に失敗しました。"; releaseobject #sc; endmacro; } message $ret2; $ret3 = callmethod_returnstr(#sc, "Eval","cstr(1.155/0.3)"); if(getresultex(10) == false){ message "Eval(2)の実行に失敗しました。"; releaseobject #sc; endmacro; } message $ret3; releaseobject #sc; endmacro;
説明追加
検索系文を使って検索する
「動作環境」−「ユーザーインターフェース」−「検索での表示」で、「範囲選択」が選択されている必要があります。 ちなみに、この選択状態は、searchmodeキーワードで知ることができます。
以下を追加
秀丸エディタ Ver 6.00から追加されたsetcompatiblemodeを使用すれば、「検索での表示」の設定を、マクロ実行時に レジストリを書き換えないで、一時的に変更することが可能です。
注意書き追加
endsel;を実行して選択モードを終了しても、範囲選択状態ままカーソル移動コマンドを使うと、 移動した場所まで範囲選択状態になります。 動作的にはおかしいけど、現状(2004/05/22)においては仕様ということです。
範囲選択した後の操作(コマンド?)で範囲選択が解除されれば問題はないが、 解除されない場合にカーソル移動を行うと思わぬ結果になるので注意。
内容の訂正と追加
ちなみに、gettext文を実行すると、(gettext文での選択範囲が、秀丸ウィンドウ上で範囲選択されている 範囲と重なっているか否かに関わらず)範囲選択は解除されます。
秀丸エディタVer5.00β5より、gettext(gettext2)文に第5パラメタが追加され、範囲選択を維持することが できるようになりました。(0:範囲選択解除 1:範囲選択保持 省略した場合は0と見なされる。)
秀丸エディタVer5.00β4より、gettext2文が追加されました。gettext文との違いは、columnとlinenoで、 指定を行うところです。
検索系のコマンドと併用する場合、"検索での動作"の設定にかかわらず、マッチした範囲を取り込むには、 seltopx〜selendyキーワードではなく、foundtopx〜foundendyキーワードを使うといいでしょう。
新規追加
秀丸エディタVer.4.10より、ウィンドウのタブ化が可能になりました。 さらに、Ver.5.00より複数タブウィンドウにも対応しました。
タブモードが有効な場合、通常と同じくopenfile文を使えば、アクティブなタブウィンドウに、 タブとして追加されます。
新規のタブウィンドウとして開く場合は、起動オプション"/i"を指定します。(Ver.5.00以降)
現在のタブウィンドウから、別のタブウィンドウまたは新規タブウィンドウに移動するには、 settabgroup文を使います。
タブ間の移動にはnexttab(次のタブ)、prevtab(前のタブ)を使います。(Ver.5.00以降) Ver.4.00系は、複数タブウィンドウをサポートしていないので、通常の移動命令で切替が可能です。
openfile文で座標指定が可能ですが、タブモードの場合、"/i"オプションを併用する場合、 または、他に秀丸ウィンドウが存在しない場合以外は、 アクティブなタブウィンドウに追加される為、座標指定自体が無効化されます。
タブモード時は、"ウィンドウサイズを自動調整する設定"が無効化されます。
新規追加
秀丸エディタVer.4.10以降から、"常に手前に表示"が追加されました。 タブモードの場合、"常に手前に表示"してある、タブグループから分離すると、 "常に手前に表示"の設定も引き継がれます。
内容追加
●作例3
slide_moon氏作成マクロ Magic Key Ver.0.11 -- 多工程短縮キー
作例2で紹介されている"KEY_ASIN.MAC"の模写マクロである「magickey.mac」と 保守マクロである「magickey_cfg.mac」のセット。 追加機能として、多段階のキーストローク設定が可能。
●作例4
ませま氏作成マクロ キー割り当て拡張マクロ Ver. 0.03
作例2で紹介されている"KEY_ASIN.MAC"の機能拡張版。 拡張子毎の割り当て変更、多段階のキーストローク設定が可能。 また、200 以上の独自コマンド群(マクロ)がセットになっている。
秀丸エディタVer.5対応版は、 ませま氏のwebサイト より入手して下さい。
新しい文
setcompatiblemode fold, unfold, nextfoldable, prevfoldable, selectfoldable foldall, unfoldall rangeeditin, rangeeditout nextoutlineitem, prevoutlineitem showoutline, showoutlinebar, showfoldingbar
新しい数値キーワード
foldable, folded, rangeedittop, rangeeditend, rangeeditmode, screentopy
変更
config "x"の追加 xOutlineBar, xRangeEdit, xFolding, xFoldingTwigBar configcolor, getconfigcolor で新しい色 loadhilight, savehilight で対象を指定
searchdown等の追加パラメタ
masknormal maskcomment maskifdef maskscript maskstring masktag maskonly loop noclose (grep用) backup preview outputsingle またはsearchoption相当の数値直接
config "x:〜";とgetconfig()で指定できるものに、以下のものを追加。
AutocompFlag1(autocomplete文の第2パラメタと同じ) AutocompFlag2(autocomplete文の第3パラメタと同じ) AutocompDic(autocomplete文の第4パラメタと同じ) AutocompAuto
追加された命令の詳細は、マクロヘルプを参照して下さい。
Ver.8からVer.7からの変更点は、かなり多い為、変更内容については、サイトー企画のページを参照してください。
秀まるおのホームページ(サイトー企画)−秀丸エディタの紹介(Ver8.00対応版)(追加コマンド/設定一覧) にある、「マクロ」の項目を参照して下さい。
追加キーワード
platform settingdir backupdir compfilehandle outlinehandle lineselecting selectionlock mouseselecting scrolllinkhandle xpixel ypixe formwidth
マクロ引数
getarg
静的変数関連
setstaticvariable getstaticvariable
整形関連
form unform showformline
レジストリ操作
getregbinary writeregbinary
カラーマーカー関連
colormarkerdialog deletecolormarker deletecolormarkerall
文字列操作関連
wcslen wcsleftstr wcsrightstr wcsmidstr wcsstrstr strrstr wcsstrrstr byteindex_to_charindex charindex_to_byteindex wideindex_to_charindex charindex_to_wideindex
DLL関連
dllfuncw dllfuncstrw loaddll(関数版)
検索関連
searchoption2 findspecial
内容比較関連
prevcompfile nextresult prevresult
クリップボード関連
getclipboardinfo copyformed poppaste2 cutline cutword
カーソル移動関連
backtab forwardtab moveto2 gotagpair
ウィンドウ関連
fullscreen refreshoutline refreshtabstop
ブックマーク関連
loadbookmark savebookmark
その他
getresultex seterrormode deletefile quitall autocompstate deleteline2 beginlinesel charcount showcharcount runex help4 help5 help6 enablebreak disablehistory
自動起動マクロの追加
アクティブ切り替え後
COM関係追加
createobject getobject callmethod callmethod_returnstr callmethod_returnnum callmethod_returnobj getpropstr getpropnum getpropobj member setpropstr setpropnum setpropobj releaseobject getcollection sleep keepobject
ファイルマネージャー枠(HmExplorerPane.dll)関数
SetMode GetMode LoadProject SaveProject GetProject GetWindowHandle
アウトライン枠(HmExplorerPane.dll)関数
Output Push Pop GetWindowHandle
秀まるおのホームページ(サイトー企画)−秀丸エディタの紹介(Ver8.00対応版)(追加コマンド/設定一覧) にある、「マクロ」の「・変更,パラメータ追加」を参照して下さい。
変更、パラメータ追加等
getcolormarker で行末 colorcode で行末 menu でセパレータ openbyshellでresult openfile で不足分のエンコード指定, wb ws 指定 windowstate2 全画面表示かどうか print ダイアログを出す appendsave パラメータ対応 split 新タイプ,左右 savedesktop restoredesktop ファイル名指定 updated 他の秀丸エディタからも取得 loadkeyassign savekeyassign 設定ファイル用のフォルダ clearcliphist 指定項目削除 setcompatiblemode 貼り付け後のカーソル位置 scrolllinkでウィンドウ指定 insert文で\x0d \x0aを正確解釈するパラメータ replaceall等の数値指定と合わせて、inselectも指定できるように execmacroでパラメータ渡し nextcompfileの追加パラメータ compfileの追加パラメータ grep文の追加パラメータ setsearchの追加パラメータ geteventparam(2)の戻り値 fontmodeは、固定ピッチフォントでもTSV/CSVモードであればプロポーショナル扱いに 文字列型変数のサイズを大きくする loaddll関数,dllfunc等で複数扱えるように
Ver.8.00からVer.8.10からの変更点として、主なのは、DirectWrite対応です。
追加キーワード
formline(整形ラインの表示の有無)
その他
マクロ実行時、常駐秀丸のメニューから中断できるようにする。
変更、パラメータ追加等
searchdownしたときもprevposの直前の位置の対象にする。
説明追加
hmjre.dllは、"$"が、テキストの途中に現れる"\n"にもマッチします。その為、ファイル2にもマッチします。 また、秀丸エディタ Ver.8より、正規表現中に、(?#maxlines:数値)という形式で、 正規表現DLLに渡す行数を指定できます。 (正規表現のコメント形式に基づく指示なので、検索には影響しない。)
説明追加
hmjre.dllでは、タグ付き正規表現はPerlと同じく、括弧「()」を使用します。 "\f"でのタグ指定は、現状(2010/02/07)でも有効ですが、内部処理的には、 かなり面倒なことをやるので、あまり使わないようにしましょう。 (秀丸エディタ内部で、"\f"で検索文字を分割し、分割した分だけ、 検索を実行するので、速度的にも遅くなると思います。)
マクロ用DLLと異なり、正規表現エンジンは、使用する秀丸エディタと同じbitのDLLしか使えません。
64bit対応しているのは、hmjre.dll、hmonig.dllです。 JRE32.DLL、BRegIf.dllの64bit版はありません。
秀丸エディタの正規表現エンジンは、JRE32.DLLからhmjre.dllに変更になっています。 hmjre.dllはJRE32.DLLに対して、以下の拡張が行われています。
パターンの繰り返し回数指定
{n} {n,} {n,m}
後方一致指定
(?=expression)
後方不一致指定
(?!expression)
前方一致指定
(?<=expression)
前方不一致指定
(?<!expression)
一般的正規表現互換のタグ付き正規表現
\1 \2 ...
繰り返しマッチングでのものぐさ指定(最短一致)
*? +? ?? {n,m}?
ヒットした扱いにするタグ指定
(?\tag-number)
hmjre.dllのVer.3.00以降、さらに拡張が進み、
以上の機能が、追加されています。 詳細は、hmjre.dllのヘルプを参照してください。
BREGEXP.DLLを使うことにより、Perl互換(1996/05/25辺りのPerl5)の正規表現が使えます。 使用するにはBRegIf.dllが必要です。
hmjre.dllに比べ、使用できる正規表現は増えますが、以下の制限があります。
2007/09/16に公開されたバージョン(BRegIf.dll v0,0,2,2)では、K.Takata氏の修正が取り込まれ、 括弧を使用した場合でも、置換で"\1"によるタグ参照が可能です。 "bregonig.dll"を認識し、"bregonig.dll"-->"BREGEXP.DLL"の順番でDLLのロードを試みます。 明示的に"BREGEXP.DLL"を使用したい場合は、"bregonig.dll"をリネームするか、削除しておく必要があります。
bregonig.dllを使うことにより、鬼車の正規表現が使えます。 (使用できる正規表現や、制限事項等は、bregonig.dllのドキュメントを参照) 使用するにはBRegIf.dll(v0,0,2,2)が必要です。
BRegIf.dll+BREGEXP.DLLと同じ制限があります。
bregonig.dllのインターフェースが、"BREGEXP.DLL"と同じであることを利用して、動作させています。
"bregonig.dll"-->"BREGEXP.DLL"の順番でDLLのロードを試みます。 あまりないとは思いますが、"bregonig.dll"のロードに失敗した場合、"BREGEXP.DLL"が使用されることになります。 "bregonig.dll"を使用する場合は、"BREGEXP.DLL"を削除、またはリネームしておいた方がいいかもしれません。
"bregonig.dll"のバージョンが1.41未満の場合、BRegIf.dllの独自拡張機能である、";1"によるサブパターン指定が、 正常に動作しません。サブパターン選択を使用する場合は、Version.1.41以降が必要です。
bregonig.dllは、Unicode対応版のVer.2.00以降がありますが、BRegIf.dllからは、Unicode対応のAPIは呼び出していません。 その為、Ver.2.00以降を使用しても、動作はANSI/Shift_JIS 専用版と同じです。
hmonig.dllを使うことにより、鬼車の正規表現が使えます。 Ver.0.5.9.0以降では、 鬼雲(Onigmo (Oniguruma-mod) ) の正規表現が使えます。 (使用できる正規表現や、制限事項等は、hmonig.dllのドキュメントを参照)
以下の制限があります。
一致して欲しくない文字の集合。指定された文字に一致しない文字にマッチする。 "\n"も含め、"一致しない文字"全てにマッチします。 ("."と違い、"\n"を含めたくない場合は、明示的に指定する必要あり。)
DLLのページにある、ファイルパスの分割で、 ファイル名を分割するのに、否定クラス([^\\]+)を使用しているが、対象文字列を、
$name = "C:\\Program Files\\Hidemaru\\hidemaru.exe\n"; ====追加
にすると、最後のファイ名の所で、改行文字までマッチします。 否定クラスを使う場合、意図しない箇所までマッチする事があるので、 注意が必要です。
一般的(?)な正規表現と違い、ネストした括弧に対応していないので注意。 一番浅い括弧をタグと認識する。
aa(bbb(ccc)dddd)(eeeee) ============ ===== \1 \2 (ccc)はタグと認識しない。
肯定先読み、否定先読みとも呼ばれています。 "^"や"$"と同じアンカーで位置にマッチする。 単独で指定した場合は、"文字"にマッチしないので、「検索文字列の強調表示」しても強調表示されない。
(?!A) ==> "A"でない文字の先頭にマッチする。
最後にある必要はなく、以下のような書き方もできます。
(?!000)[0-9]{3} ==> "000"ではない3桁の数字
正確(?)には、「"000"の先頭に一致しない3桁の数字」になるのかな? 「"000"が前にない3桁の数字」ではないので注意。
肯定後読み、否定後読みとも呼ばれています。 "^"や"$"と同じアンカーで位置にマッチする。 単独で指定した場合は、"文字"にマッチしないので、「検索文字列の強調表示」しても強調表示されない。
(?<=A) ==> "A"の最後(末尾)にマッチする。
"後読み"と言われているように、最後にマッチ判定を行います。
(<=aaa)(bbb)ccc(ddd) ==> (bbb)ccc(ddd)にマッチする箇所を探してから、 (<=aaa)にマッチするか判定する。
使用するDLLによって、制限があるので注意すること。
秀丸エディタVer.8より、grepに「ヒットしない行」というオプションが追加され、 秀丸エディタの機能で、条件に一致しない行を列挙可能になっています。
BRegIf.dllはBREGEXP.DLLへの仲介を行うだけでなく、独自の拡張が行われて、 パターンの否定が出来ます。(詳細は添付されているテキストファイルを参照)
hmjre.dllの場合は、後方不一致指定を使えば可能。
^((?!一致しない文字列).)+$
参考サイト:正規表現パズル
一致しない条件が一文字または、どれか1文字という場合は、
^[^a]+$
という、否定クラスを使う方法もあります。
以下の正規表現は、"ab"を含まないという表現にはならないので、注意すること。
^([^a][^b])+$
\wは一般的に、単語構成文字([a-zA-Z_0-9])のクラス略記法ですが、使用するDLLによって、 扱いが異なります。(正規表現は処理系毎に、微妙に異なることが多い事と、多言語対応による。)
[a-zA-Z_0-9] になります。
[a-zA-Z_0-9]+2バイト文字の範囲(漢字、カタカナ、ひらがな) になります。 (使用するロケールに従い、単語構成文字にマッチする。) 日本語の文章を、「\w+」で検索すると、ほぼ全ての文字にマッチします。 その為、「\b」(単語境界)も影響を受けます。
2011/09/19現在、正規表現検索でShift_JIS範囲外の文字を正常に扱えるのは、hmjre.dll、hmonig.dll(Ver.5.0以降)だけです。 他のDLL(BRegIf.dll(BREGEXP.DLL、bregonig.dll)、hmonig.dll(Ver.5.0未満)、JRE32.DLL)は、基本的に対応していません。
検索が行われない訳ではありませんが、
等は、正常な結果を返さない場合があります。
bregonig.dllは、Unicode対応版のVer.2.00がありますが、BRegIf.dllからは、Unicode対応のAPIは呼び出していません。 その為、動作はANSI/Shift_JIS 専用版と同じです。
秀丸エディタで使用できるタグの上限は、hmjre.dllの仕様から9までとなります。
BRegIf.dll + bregonig.dll、hmonig.dll自体は、10以上も指定可能ですが、 秀丸エディタ側から10以上を取得できないので、実質10以上は、使用できません。
正確には、検索時に後方参照で使用する場合は、DLL内の処理で済むため、10以上も使用可能です。 置換は、秀丸エディタ側で処理を行うため、10以上は使用できません。