Quarta
複数行対応、大きな (検索|置換|Grep 検索|Grep 置換) ダイアログ
Version 2.0 2008/10/17
- 秀丸エディタの検索/置換/Grep ダイアログを代替します。
- 複数行対応。
- 正規表現エスケープ、置換プレビュー、その他便利な機能を搭載。
- エクスプローラの右クリックメニューからフォルダ内を Grep できます。
- 秀丸エディタ ver 7.00 以降 と HmJre.dll をお使いですね?
- 田楽 (でんがく) DLL v2.98 以降をインストールしてください。
- マクロフォルダの位置を確認します。
マクロフォルダは秀丸エディタの [その他]-[動作環境...]-[パス]-[環境]-[マクロファイル用のフォルダ] で指定されているフォルダです。無指定なら Hidemaru.exe と同じフォルダです。
- ダウンロードしたアーカイブをマクロフォルダに解凍します。
- 必要に応じて [マクロ]-[マクロ登録...] で Quarta-Search.mac, Quarta-Replace.mac, Quarta-GrepSearch.mac, Quarta-GrepReplace.mac を適当な番号に登録します。
- 必要に応じて [その他]-[キー割り当て...] で適当なキーに割り当てます。
- マクロを実行します。
- エクスプローラなどでフォルダの右クリックメニューに [秀丸でGrep検索] [秀丸でGrep置換] を追加したい場合は、 "右クリックメニューに追加/削除.vbs" を実行して [はい] を押します。この操作はレジストリを書き換えます。
インストール後のファイル構成は次のようになります。
■マクロフォルダ\
│・Quarta-Search.mac … 起動マクロ (検索ダイアログ)
│・Quarta-Replace.mac … 起動マクロ (置換ダイアログ)
│・Quarta-GrepSearch.mac … 起動マクロ (Grep 検索ダイアログ)
│・Quarta-GrepReplace.mac … 起動マクロ (Grep 置換ダイアログ)
│
└─■Quarta\
・Quarta-Main.mac … 本体
・GrepSearchCurrDir.mac … 起動マクロ (カレントフォルダを Grep 検索)
・GrepReplaceCurrDir.mac … 起動マクロ (カレントフォルダを Grep 置換)
・Quarta.ini … 設定ファイル
・Quarta.hst … 履歴ファイル
・右クリックメニューに追加/削除.vbs
・AssignReg.dll
・Keycode.ini
- 新しいアーカイブをマクロフォルダに上書き解凍します。設定ファイルはそのまま引き継がれます。
- インストール時と同じ方法でキー割り当てを解除します。
- 同様にマクロ登録も解除します。
- フォルダの右クリックメニューに追加していた場合は、 "右クリックメニューに追加/削除.vbs" を実行して [いいえ] を押します。この操作はレジストリを元に戻します。
- Quarta-Search.mac, Quarta-Replace.mac, Quarta-GrepSearch.mac, Quarta-GrepReplace.mac および Quarta フォルダ以下の全ファイルを削除します。
基本的に秀丸エディタの検索/置換/Grep ダイアログと同じですが、個々の動作に細かい違いがあります。
全般
- 次の動作は秀丸エディタの動作環境に従います。このほか、動作環境の [検索] ページの各設定が有効です。
- [全置換は常に高速で行う]
- [失敗したときメッセージ表示]
- [カーソル位置の次の文字から検索を開始]
- [カーソル位置の次の文字から検索を開始] は上検索に対しても有効です。これが OFF だと上検索でも最初の位置 (選択範囲) にヒットします。
- 動作環境の [検索] - [ダイアログボックス] ページの各設定は無効です。検索ヒストリと置換ヒストリの消去はできます。
- [リアルタイム検索] は、ダイアログ上の [プレビュー] チェックボックスで ON/OFF できます。
- [アクティブな秀丸エディタに検索ダイアログも移動する] は、できません。
- [検索ダイアログで単語の検索の状態を覚える] は、つねに有効です。基本的にチェックボックスの状態は全部覚えています。
起動
- 範囲選択状態で起動した場合、その範囲が検索文字列・置換文字列として取り込まれます。BOX 選択の場合は見かけの 1 行めが取り込まれます。
- 無選択状態で起動した場合、カーソル位置の単語全体が検索文字列・置換文字列として取り込まれます。ただし、カーソル位置の文字が制御文字または半角記号のときは何も取り込まれず、前回実行時の値が初期値になります。
- 起動時のフォーカスは置換文字列にあります。
- ダイアログの位置は検索/置換/Grep 検索/Grep 置換で別々に記憶されています。
ダイアログの操作
- 検索文字列・置換文字列の履歴がドロップダウンリストから選択できます。なお、ドロップダウンリストの一番上は履歴ではなく、今回の初期値です。
- [正規表現] を ON にすると、メタキャラクタが自動的にエスケープされます。OFF にすると自動的にアンエスケープされます。
- [<] で手動アンエスケープ、 [>] で手動エスケープができます。
- [プレビュー] を ON にすると、ダイアログへの入力と同時に秀丸エディタ上で検索/置換が行われます。もちろん、キャンセルすれば元に戻ります。
- [プレビュー] を ON から OFF にしたとき直前の状態が残るのは仕様です。
- [端から] を ON にすると、下検索は文書頭から、上検索は文書末から実行されます。
- [ループ] は秀丸エディタの [一周する] と同じです。
- 無効な (淡色表示の) チェックボックスの値は OFF です。淡色表示でチェックが入っていても OFF です。
- 検索文字列の追加取得はできません。
- Ctrl+(Shift+)Tab で他のウィンドウに切り替えることはできません。
- Ctrl+Home/End でファイルの先頭/最後に移動することはできません。その代わりに [端から] チェックボックスがあります。
実行
- [下候補] [上候補] コマンドに割り当てられたキーが有効です。
- Ctrl+Enter は [下候補]、 Ctrl+Shift+Enter は [上候補] と等価です。なお、入力後 0.1 秒以内に Ctrl+(Shift+)Enter を押すと正しい結果になりません。
- 検索/置換を実行するとすべての状態が記憶されます。
- [キャンセル] か Esc を押すとすべての状態が (検索バッファも) 元に戻ります。ただし、ダイアログの位置は記憶されます。
- [適用] を ON にすると [キャンセル] が [閉じる] に変わります。この状態で [閉じる] か Esc を押すと入力内容がバッファに記憶され、あとで [上候補] [下候補] コマンドで検索/置換できます。
設定は Quarta.ini に記述します。
[Dialog] セクション
- rows
-
入力欄の行数を設定します。(デフォルト = 6)
- width
-
入力欄の文字数を設定します。(デフォルト = 80)
[Dialog]
rows=6
width=80
この設定はシステムフォントが基準となるのに対し、入力欄には編集画面と同じフォントが使われるため、設定通りの行数・文字数が表示されない場合があります。
[Key] セクション
- 下候補
- 上候補
-
キーを設定します。カンマ区切りで複数指定できます。
[Key]
下候補=F3
上候補=Shift+F3
Quarta は初回起動時に秀丸エディタのキー割り当てを取得して設定ファイルに書き込み、以降は設定ファイルから読み込みます。したがって、秀丸エディタのキー割り当てを変更しても自動的には反映されません。反映させるには、一旦すべての秀丸を終了してから、設定ファイルの [Key] セクションを削除してください。
[Custom] セクション
- FlagHist
-
検索オプションの履歴を記録します。 yes にすると検索履歴を呼び出したときにチェックボックスの状態も再現されます。(デフォルト = no)
[Custom]
FlagHist=yes
Quarta と秀丸エディタの検索ダイアログを混用すると、検索文字列の履歴と検索オプションの履歴がずれることがあります。
秀丸エディタの Grep 置換機能は v6.50 で初めて搭載されました。それ以前は同じ機能をマクロで実現しようと多くのマクロ作者さんが挑戦したものです。彼らの戦績をここに記します。(2008/10/17 現在)
マクロ名 |
作者 |
処理方式 |
公称速度 |
更新日 |
Quarta ※このマクロです |
mobitan |
独自ダイアログ → 独自 EXE ※v2.0 以降は秀丸エディタの Grep 置換機能を呼び出しています |
|
2008/10/17 |
FastGrepReplace |
緒方聡 さん |
Grep 結果を置換しておく → 独自変換モジュール |
|
2008/10/14 |
FastPerm |
kuro さん (kazoo さん?) |
Grep 結果を置換しておく → 独自 EXE |
2361行/0.7秒 |
2004/02/02 |
文字列バッチ置換 |
ゆ〜り さん |
パス入力 → 拡張子入力 → サブフォルダも (Yes/No) 入力 → 正規表現 (Yes/No) 入力 → 大文字小文字を区別 (Yes/No) 入力 → 検索文字列入力 → 置換文字列入力 → grep filelist → openfile → replaceallfast |
|
2003/07/07 |
Z_Grep ズィー・グレープ |
おーなーしぇふ さん |
Grep ダイアログ → 置換文字列入力 → tagjump → replaceall |
|
2002/09/16 |
グレップ結果置換 |
柳井政和 さん |
Grep 結果を置換しておく → gettext → tagjump → delete → insert |
|
2002/06/07 |
フォルダ内文字列置換 |
なむ極悪 さん |
独自ダイアログ → grep filelist → openfile → replaceall |
|
2000/10/29 |
この比較表は歴史的な意味で残してあるものです。
動作環境
- 秀丸エディタ v7.00 以降 + HMJRE.DLL + 田楽 (でんがく) DLL v2.97 以降で動作するはずです。
- 秀丸エディタ v7.10β9 + HMJRE.DLL v1.92 + 田楽 (でんがく) DLL v2.98 で動作確認しました。
- JRE32.DLL やその他の正規表現 DLL での動作はサポート外です。
ライセンス
- このマクロはフリーウェアです。自由に利用、改変、再配布することができます。
- 作者はこのマクロに関する一切の責任を持ちません。
- 改変したものを公に再配布するときは次のことを明記してください。
- 改変したものである旨 (できれば改変内容も)
- 改変元の名称、バージョン、一次配布場所
配布場所
一次配布場所は Wisteria - 秀丸マクロ - Quarta です。二次配布は次のところで行われています。
謝辞
Quarta は複数の DLL の力を借りて成り立っています。作者の皆さんに敬意を表します。ありがとうございます。
- 杉浦 方紀 さん作 田楽 (でんがく) DLL
GUI を作るために利用しています。
- カモノハシ さん作 AssignReg.dll
秀丸エディタのキー割り当てを取得するために利用しています。
- 阿部 紀行 さん作 GLGrep.exe, macrodll.dll
以前のバージョンで、Grep 置換を実行する GLGrep.exe を作っていただきました。
- babaq さん作 BREGEXP.DLL
以前のバージョンで、ダイアログ上で特殊文字のエスケープ処理を行うために使っていました。
- Grep でファイル名を出力しない機能 (秀丸エディタにはないが、個人的に欲しい)
- Grep の [出力先] に対応
- Grep の [エンコードの種類] に対応
- [追加の条件] に対応
- パターン登録機能
- Version 2.0 (2008/10/17)
-
- 秀丸エディタ v7.0 対応
- 折りたたみ/部分編集に対応
- Grep 置換を書き直し、大幅に高速化 & 高信頼化 (独自 EXE を廃止し秀丸エディタ本体の機能を使う)
- 全置換と Grep 検索を書き直し、大幅に高速化 (DLL と一時ファイルを使わずマクロ内で処理する)
- GLGrep.exe, macrodll.dll, BREGEXP.DLL は不要になりました
- 新規作成/Grep 結果/実行結果/Web ブラウズモードで Grep (検索|置換) したときファイルマスクが変なバグ修正
- [置換の前に確認] が ON で置換が終わったとき「元の位置に戻りますか?」と聞かない
- Version 2.0 beta 17 (2006/03/05)
-
- 検索で「元の位置に戻りますか?」と聞かれることがあるバグ修正 (beta 15 でエンバグした)
- ドキュメント加筆
- Version 2.0 beta 16 (2006/03/03)
-
- 全置換で [確認] が ON で [選択した範囲内のみ] が OFF で [位置を固定する (Vz 風)] が ON のときの特例を廃止 (秀丸エディタ v6.0β5 で、置換の前に確認するとき「位置を固定する」の状態をなるべく維持するようになったため)
- Version 2.0 beta 15 (2006/02/28)
-
- ウィンドウに対するカーソル位置をできるだけ保持する
- ダイアログ表示中は動作環境の [位置を固定する (Vz 風)] を ON にする (ダイアログを閉じたら元の設定に戻る)
- 全置換で [確認] が ON で [選択した範囲内のみ] が OFF で [位置を固定する (Vz 風)] が ON のとき、
replaceall
を使わず replacedown
で処理する
- [確認] が ON の場合 result の値にあまり意味がないので、終わったら必ず「元の位置に戻りますか?」と聞くようにする
- [適用] のショートカットキー (ニーモニック) がダブってたので変更
- Version 2.0 beta 13 (2005/12/21)
-
- [適用] 追加 (秀丸の検索ダイアログの [適用して閉じる] に相当)
- FlagHist=yes 追加 (検索オプションの履歴を保存する)
- ダイアログにないフラグが保存されないバグ修正
- フォルダの右クリックメニューから起動したとき前回のフラグが反映されないバグ修正
- 置換ダイアログの [瞬速] チェックボックスを一時廃止
- Grep 置換・瞬速全置換の実行前に警告
- プレビューの遅延時間を 60ms にする
- 田楽 DLL v2.81 利用
- AssignReg.dll v1.85 同梱
- macrodll.dll v0.77 同梱
- Version 2.0 beta 12 (2005/07/08)
-
- 瞬速全置換できなかったバグ修正 (beta 10 でエンバグした)
- Version 2.0 beta 11 (2005/07/05)
-
- フォルダの右クリックメニューの [秀丸でGrep置換] で Grep 検索が起動するバグ修正 (レジストリに追加し直してください)
- フォルダの右クリックメニューから起動したとき落とされるフラグが違ってたバグ修正
- Grep 置換でデバッグ用メッセージが残ってたのを削除
- Version 2.0 beta 10 (2005/07/04)
-
- [選択した範囲内のみ] の ON/OFF を覚える
- 選択範囲が改行を含まないときは [選択した範囲内のみ] を無効にする
- 置換の場合は [カーソル位置の次の文字から検索を開始] が ON でも最初の位置 (選択範囲) をヒットさせる
- Version 2.0 beta 9 (2005/07/03)
-
- [カーソル位置の次の文字から検索を開始] が ON のときは最初の位置 (選択範囲) をヒットさせない
- Ctrl+[キャンセル] で入力内容を記憶する (検索バッファも更新される)
- フォルダの右クリックメニューに [秀丸でGrep検索] [秀丸でGrep置換] を追加/削除するスクリプトを同梱
- フォルダの右クリックメニューから起動したときは カレントディレクトリ\*.* が対象になる
(そのために、ヒストリに -1 番があれば一時的な設定として使う処理を追加)
- Version 2.0 beta 8 (2005/07/03)
-
- [瞬速全置換] 追加
- [プレビュー] [上へ|下へ] 追加
- [先頭から] [末尾から] をまとめて [端から] にする
- [ファイル名一覧だけ作成] はやっぱりチェックボックスにする
- テキスト欄で Ctrl+Enter (下候補)、Ctrl+Shift+Enter (上候補) が使えるようにした
- ダイアログにないフラグが保存されないバグ修正
- キャンセルしても長さチェックが働くバグ修正 (beta 7 でエンバグした)
- Version 2.0 beta 7 (2005/06/28)
-
- Grep 置換ダイアログに [現在のファイル] を追加
- リアルタイム検索が ON で初期値が取得された (つまり、カーソル位置が必ずヒットする) 場合のみダイアログ位置の最適化 (カーソル位置を避ける処理) を行う
- [置換の前に確認] が ON のとき [全置換] をグレーアウトしない
- キー割り当てを記憶したときにメッセージを表示
- Version 2.0 beta 6 (2005/06/27)
-
- 検索ダイアログに [Grep検索] ボタンを追加 (現在の内容を Grep 検索する)
- Version 2.0 beta 5 (2005/06/26)
-
- Grep 検索・Grep 置換ダイアログに [現在のフォルダ] を追加
- Grep 検索・Grep 置換ダイアログのデザイン変更
- [ファイル名一覧のみ作成] をボタンにする
- [最小化状態で実行] [ファイル名をフルパスで出力] の場所を変更
- [フォルダ] [現在の内容] のショートカットキー (ニーモニック) を変更
- Grep のフォルダ・ファイルの初期値は前回実行時の値にする
- Grep 検索・Grep 置換 のフォルダ履歴・ファイル履歴をサポート
- [サブフォルダも] が ON の状態で [現在の内容] を ON にすると Grep 検索できないバグ修正
- Version 2.0 beta 4 (2005/06/26)
-
- 初期値が取得されなかった場合は検索バッファ・置換バッファを初期値にする
- [正規表現] の ON/OFF を覚える
- 選択した範囲内のみ全置換できないバグ修正
- 現在の内容を Grep 検索できないバグ修正
- Version 2.0 beta 3 (2005/06/21)
-
- 起動マクロのファイル名を Quarta-*.mac に変更 (β2 では間違って GreatGrepReplaceDialog.mac.mac とかになってた)
- BREGEXP.DLL を同梱 (必要であることを書き忘れてた)
- リアルタイム検索の遅延時間を 100ms にする (1 秒はデバッグ用の設定だった)
- バイト数表示のちらつきを改善
- Version 2.0 beta 2 (2005/06/20)
-
- Version 2.0 beta 1 (2005/06/20)
-
バグ報告、質問、ツッコミなどは 談話室 へどうぞ。