━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ kakimacG.lzh 秀丸・拡張grep(論理積検索可) ────────────────────────────── Windowsにおける快適な日本語作成環境の構築をめざして ────────────────────────────── 秀丸日本語文章作成支援 「書きマクロ」αシリーズ第G集 Ver.1 k_GREP Ver.1 1995/09/23 水銀水(Suigwinsui)/小田 明夫(HGD01603) ────────────────────────────── ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [折り返し文字数(1行の字詰め)は、82以上で、読んでください!!!] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [マニュアル構成概要......もくじ] ●[1] k_GREPで何ができるのか?.......................[k_GREP Ver.1 の特徴] ●[2] 導入方法...........................[kakimac専用ディレクトリを作ります] ●[3] k_GREP を動かす方法.......................[通常の秀丸マクロと同様デス] ●[4] k_GREP の処理全体概念.........................[k_GREP処理の全体の流れ] ●[5] k_GREP 検索条件の指定...................[検索情報をキャプションに表示] ●[6] k_GREPの実行........................................[検索を実行します] ●[7] k_GREP結果リストの吟味......................[検索結果を一覧リスト表示] ●[8] 閲覧 の表示内容.........................[検索情報をキャプションに表示] ●[9] 全体検索による快適検索(^^)......[k_GREP検索語をファイル全体で簡単検索] ●[10] k_GREP の動作設定...............[正規表現、サブディレクトリ等の設定法] ●[11] 日本語文書作成支援としての用法......................[その具体的な例示] ●[12] Windows上のワープロソフトと連携.............[独自ファイルのgrep検索法] ●[13] k_GREP の使用上の注意点.................................[小さな注意点] ●[14]「書きマクロ」公開済みリスト...................................[概略編] ●[15] 最後に..................................................[謝辞などなど] ※ ディレクトリ指定で、ダイアログボックスを使いたい場合は、tukamacG.lzhを ダウンロードする必要があります。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ●[1] k_GREPで何ができるのか?.........................[k_GREP Ver.1 の特徴] ─────────────────────────────────────── □ 拡張型GREPを秀丸エディタ上で実現する意義とは? お暇な方は、どうぞ……(^^; ・k_GREPの特徴…………『論理積』による多重GREPを実現(^^)  k_GREPは論理積によるファイル検出を秀丸エディタ上で実現する秀丸マクロです。 『論理積』なんて難しそうですが、何のことはない、『かつ』という条件の事です。 たとえば、「秀丸エディタ」と「水銀水」と「マクロ」について書いた文書(これら の文字列を全て含むファイル)を簡単に検出できるということです。で、『論理積に よるファイル検索とは、検出したい複数の文字列を同時に含むファイルを見つける』 作業だというわけです。 (論理和、『または』条件を付加した検索もできます。水銀水だけでなく、Sugwinsui という文字列でもヒットさせたい場合、「水銀水|Sugwinsui」てな感じで指定すると、 『または』条件を付加して、「かつ」と「または」を駆使したファイル検索も簡単に 実現することができます) ・一般的なgrepの特性  grepとは、複数のファイルから検出したい文字列を含むファイル(行)を高速に 見つけだす、非常に強力なコマンド(ソフト)です。ただし、Windows用のgrepは、 「AかつB」の検索を実行したとき、ヒットするのは、「論理行内にAとBがある 場合」に限られているようです。つまり、「A」と「B」が別の論理行にある場合、 (「A」と「B」の間に改行があるなどの場合)検出は不可能だったのです。まあ、 これはある意味で当然です。grepとは、本来、「ファイル」を検出するのでなく、 「条件に合致する『行』を検出」するためのツールであったためです。この仕様は、 主としてプログラマたちが、膨大なプログラム・ファイルの中からチェックが必要 な行を検出するために作られたといわれている、grepの開発主旨によるものです。  したがって、AとBが同じファイルにあっても、同一の論理行でない場合、「A かつB」のファイルとしての検出できなかったのでした。(追記:これができるソ フトがシェアウエアとして最近公開されたと聞いています) ・grepするがゆえの悲劇(^^;  ですから今まで、「AかつB」をgrepを使って検出しようと思うと、まず、Aで grepをかけて、その結果のファイルリストを1行1行、タグジャンプさせてファイル を開き、開いたファイルにBがあるかどうかを検索して判断するしかなかったのです。 もし、Aを検出させたgrepで100個のファイルが引っかかったら、100回ファイルを開 かなければいけなかったのです。これを悲劇と言わずして、何と言いましょう(^^; ・日本語文書利用者の簡単な多重grepへのワガママな要求(^^;  特に、日本語文書を書く際に求められる検索は、「複数の文字列を(その文字列の 位置に関わりなく)同時に含むファイルを探し出す」検索だと考えています。日本語 文書を書く側からすれば、論理積による検索だとか、論理和、正規表現、そんなこた あ、ど〜でも良いわけです(正直に言えば、説明されてもあまり理解できない?)。 探し出したいファイルを見つけるために求めている操作とは、単純に「A」という文 字列と「B」という文字列を入力すれば、それらを含んだファイルリストを表示して くれて、マウスかなんかで、クリクリやるとファイルが簡単に開き、grepさせた検索 語をこれまた簡単に検索して(再度、同じ検索語をキーボードから入力するなどとい うのは、愚とゆうもんですよ)、ファイルを閲覧&確認して、必要なら開いたままで、 不必要であれば、マウスのクリクリ操作で簡単に閉じたい(開いたエディタやビュワ ーを『閉じる』なんてメニュー操作をやるなんてのも、同じく、愚といふもんです)。  物理的に、論理積によるgrepを実現するだけでなく、日本語の文書を作成する者の 要求って、こんなワガママで、怠惰な要望じゃないでしょうか(^^; 多くのgrepは、 ヒットした行を表示して見せてくれますが、それだけでコト足りる、と言えないのが 日本語文書を作成する者の感想ではないでしょうか。つまり、検索語だけの行ではな く、その前後の文章も同時に見ることが出来なければ、検索語のヒットした行やファ イルが探していたものであるかどうかを判定できないわけですし、ファイルの開閉さ えも、メンドウだと思うのが、ファイルを検索している最中の正直な気持ち(^^; ・k_GREPのオ・イ・シ・サ(^^;...........多重grepした結果リストも快適操作 k_GREPは快適な文書作成環境を創出するため、ファイル検出後も継続的にファイルを 閲覧できます。で、検出されたファイルが探していたファイルかどうかを楽々と吟味・ 確認することができます。従って、検索前の執筆状態の『思考の流れ』を極力、止め ないで検索と執筆を継続的に処理することが可能です。即ち、多重GREPだけであれば 単純な物理的なファイル検索で終わってしまいますが、k_GREPは、検出後のファイル 候補から本当に探していたファイルを見つけだすための一貫した思考の流れを支援す るマクロであり、多重GREPの操作や結果に「意味」をもたらすマクロです(^^; ・一度検索した結果は骨までしゃぶる 検出した結果のファイルリストを履歴ファイルか、クリップボードに転送できるので、 検出結果を再利用することも簡単にできます。非常に多くのファイルを対象とする検 索の場合、長い時間が必要になります。こうした検索は、結果を整理して保存してお くと、次の利用の際に便利です。なお、この検索結果は、タグジャンプで再利用可能 な形式になっています。ま、ぶっちゃけたところ、検出スピードの遅さを、結果を大 切にするという方法でカバーしようと考えたわけですが、これが結果オーライで、な かなか、美しくまとまったようです(^^;ゞ(第11章の利用方法も参照して下さい) ・既存のテキストファイル・データベース化へのご提案 テキストファイルに対して、いかに少ない労力でいかに大きな利用価値を創出するか、 k_GREPの大きなテーマです(^^;ゞ で、一億総パソコン所有時代において、最も基本 的な形式であるテキストファイルをそのままデータベース化することにより、蓄積さ れた文書を単なる資料から、戦略的な『情報』として変貌させうる価値を与え、これ を有効に活用する手段として、当k_GREPの利用を提案する次第です。情報化時代にお ける実質的で知的な生産活動を支援するアイテムとしてお使い頂ければ幸いです(^^) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ●[2]導入方法..............................[kakimac専用ディレクトリを作ります] ─────────────────────────────────────── □解凍して、マクロファイルを『マクロ用ディレクトリ』へ移動させます。 ■ 1)LZHファイルの解凍  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・kakimacG.lzh をどこかのディレクトリで解凍します。 kakimacG.lzh に含まれるファイルは、下記の7ファイルです。 − 解凍されるファイル − ・ k_GREP3.MAC.....k_GREP の本体マクロ ・ k_GREPLK.MAC....k_GREP の補助マクロ1 ・ k_GREPLS.MAC....k_GREP の補助マクロ2 ・ k_GREPST.MAC....k_GREP の補助マクロ3 ・ k_GREP3M.MAC....k_GREP の補助マクロ4 ・ k_GREPLT.MAC....k_GREP の補助マクロ5 ・ readmeG1.txt....このマニュアルです(^^)(読後は削除して結構です) ※ LZHファイルの解凍法がわからない人は、kakimacB.lzhのマニュアルの readme1B.txtの【参考1〜3】部分などをごらんください(^^; (マニュアル肥大化防止策の一環ですので以下同様、ご理解くださいm(_ _)m) (kakimac5.lzhのreadme??.txtでも同様の【参考】があります) ■ 2)ファイルの移動  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・マクロをマクロ用のディレクトリに移動させます。 下記の6マクロファイル(*.mac)を『秀丸のマクロファイル用のディレクトリ』に移します。 ・ k_GREP3.mac.....k_GREP Ver.1 起動用本体マクロ ・ k_GREPLK.mac....k_GREP の補助マクロ1 ・ k_GREPLS.mac....k_GREP の補助マクロ2 ・ k_GREPST.mac....k_GREP の補助マクロ3 ・ k_GREP3M.mac....k_GREP の補助マクロ4 ・ k_GREPLT.MAC....k_GREP の補助マクロ5 ※「マクロファイル用のディレクトリ」とは...... 「その他(O)−動作環境(E)−パス(P)−マクロファイル用のディレクトリ(M)」(一番下に配置) のテキストボックスに指定されているディレクトリのことです。ここが空白の場合 は、秀丸がインストールされているディレクトリがマクロファイル用のディレクトリとなります。 つまり、秀丸v1.32以前は「秀丸がインストールされているディレクトリが、マク ロファイルを格納する唯一のマクロファイル用ディレクトリ」でしたが、秀丸v1.4xでは、その マクロファイル用のディレクトリをユーザが自由に設定できる様になったわけです(^^) ※ 「マクロファイル用のディレクトリ」の詳細については、、kakimacB.lzhのマニュアルの readme1B.txtの【参考1〜3】部分などをごらんください(^^; ■ 3)書きマクロ専用ディレクトリの作成  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・秀丸がインストールされているディレクトリのすぐ下に kakimac という名前の ディレクトリを作って下さい!! (すでに kakimac ディレクトリがある場合は、この作業は不必要です) ※ kakimac のディレクトリがないと現状では k_GREP は正しく動きません(^^; と言うわけで、お手数ですが、秀丸ディレクトリの下に kakimac ディレクトリを お作り下さい。すいませんが、よろしくお願いします ※ と言う一方で、将来的には無くそうかとも思っている私でした(^^;ゞ 当初の問題 が解決したもんですから……(^^; ま、kakimacディレクトリ作成が肌に合わない場 合は、当該マクロの当該部分を適宜、改変して下さいマセ (実は、kakimacディレクトリ以外にも簡単に導入できるように配慮されていたりな んかします(^^;) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ●[3] k_GREP を動かす方法.........................[通常の秀丸マクロと同様デス] ─────────────────────────────────────── □ k_GREPを動かす前、当マニュアルは一応、ざっと目を通して下さい ■ 1) 基本的な実行方法  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・「マクロ(M)」−「マクロ実行(X)」で k_GREP3.mac を選択して実行します。 ※ k_GREP は、覚えておいた方がよい内容が多少あります。 ま、動作内容がわかれば、どう使ったら効率的が分かりますので、チンタラ したマニュアルではございますけれども、ザッと目を通して下さい。 ※ 「マクロ実行」の方法がわからない場合は、kakimac5.lzhのマニュアルを どうぞ(^^; 多少、詳しく手順を説明しています。 ■ 2) 終了方法  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・k_GREPメイン画面で、[停止 e]を選択すると、マクロが終了します。 ※ どの画面、シチュエーションでも、基本的に [Esc] キーで作業を中断するか マクロを終了するか、いずれも「キャンセル」の方向に動く…と思います(^^; (ただし、k_GREPの検索結果画面だけは例外で、[Esc]で閲覧MODEに入ります) ■ 3) より一層、便利に使うための「マクロ登録&キー割り当て」  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・気に入れば、マクロ登録後、キー割り当てするとキー一発でk_GREPを実行できて 極めて便利にk_GREPの機能を利用できます。 ・考えて見れば通常のgrep検索を行うにも、いくつかのキーを押さなければなりま せん。で、ちょっと複雑な条件でファイルを検出したい場合、k_GREPが便利(^^;ゞ まあ、時間はかかりますけど……(^^; ・登録するのは「 k_GREP3.MAC 」のみで結構です。 ※ 自分で言うのは、コッパずかしいんですが、このマクロは、キー登録してお いたほうが、便利なんじゃなかろうかと思ったりします(^^) かなり、テキス トを扱う環境を改善してくれるものと思っています(^^; で、キー割り当てす るためのキーは、黄金の [Alt+G] キーあたりですと最高ッスね(^^; ※ 「マクロ登録」、「キー割り当て」の方法については、kakimac5.lzhのマニ ュアルに少し詳しく書いています。わからない方は、ご参考にどうぞ(^^; ■ 4) 自由自在にファイル・サーフィン(^^)するために  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・k_GREPは、見つけたいファイルをさまざまな検索条件を指定を駆使することで 的確で迅速な検出を可能にします。ただし、この検索条件の指定方法などが、 ちょっと慣れないと難しい部分もあるかもしれません。そこで、具体的な例を示 しながらファイルの見つけたをあげておきました。通常の検索にも利用できるも のもありますので、「[9]例題でわかる検索自由自在」、を是非一読下さい。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ●[4] k_GREP の処理全体概念...........................[k_GREP処理の全体の流れ] ─────────────────────────────────────── □ k_GREPの全体的な流れを大まかに図示します ■ 複数の文字列を含むファイルを検出するまでの手順  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ┌───────────────┐ │ 1. 検索条件指定 │--→●[5]章で詳解 └───────────────┘ ・検索文字列、検索するファイル指定など ↓ (k_GREPの実行に必要な検索情報を指定) ┌───────────┐ │ 2. 検索実行 │-------→●[6]章で詳解 └───────────┘ ・実際に検索します。 ↓ (k_GREPを実行検索) ┌──────────────┐ │ 3. 結果の吟味 │---→●[7]章で詳解 └──────────────┘ ・結果リストによりファイルを吟味する。 ↓ (クリックするだけでファイル開閉&閲覧) ┌───────────────┐ │ 4. 結果の利用 │--→●[7,9]章で詳解 └───────────────┘ ・必要なファイルのリストを得る。 (履歴、クリップボード等へ保存も可能) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ●[5] k_GREP 検索条件の指定.....................[検索情報をキャプションに表示] ─────────────────────────────────────── □ k_GREPは、基本的に「k_GREPメイン画面」と「k_GREP結果画面」の二つの画面で 運用されます。すなわち、前者は、k_GREPを実行するための条件設定画面であり、 後者は、k_GREPした結果によってファイルを効率的に吟味するための画面です。 この章では、「k_GREPメイン画面」を説明します。 □ まず、k_GREPによって、論理積によるファイル検索語を設定する手順を示します。 (この章で説明する内容) ■ k_GREPメイン画面(初期状態) ■ k_GREPメイン画面の条件設定状態の表示 ■ k_GREPメイン画面での指定注意 ■ k_GREPメイン画面(初期状態)  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 下記のようなメニュー表示状態が、k_GREPのメイン画面(初期状態)です。 ・基本的に、「A」かつ「B」の検索では、第1検索文字列に「A」を、第2検索文字 列に「B」を設定するような操作だけです(^^) ※ 第11章の例を参照ください。 (◎印は指定必須、○印は指定任意) ┌────────────────────────────────┐ │ ●ファイル検索の条件設定 [3.タイプイン方式] k_GREP Ver.1 水銀水 │ │  ◎ D. grepを開始するディレクトリ= │ │  ◎ F. 検索ファイルワイルドカード指定= │ │  ◎ 1. 第1(最稀少)検索文字列= │ │  ◎ 2. 第2(最必須)検索文字列= │ │  ○ 3. 第3(次限定)検索文字列= │ │ ━━━━━━━━━━━━━━━━━━━━━━━━━━━ │ │ ───[ k_GREP実行 G ]──────────────── │ │ ━━━━━━━━━━━━━━━━━━━━━━[停止 e]━ │ │ ───────────[拡張設定 s]────────── │ └────────────────────────────────┘ ・以下に、各項目を説明します。 ●ファイル検索の条件設定 [3.タイプイン方式] k_GREP Ver.1 水銀水 ・最上段をクリックすると、簡単なオンラインマニュアルが出てきます(^^;ゞ ◎ D. grepを開始するディレクトリ  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・通常の場合と同じく、k_GREPを開始するディレクトリを指定します。 (必ず、ドライブ名から指定してください。例 c:\data\8gatu ) ※ 指定したディレクトリ以下も検索したい場合は、[拡張設定 s]を選択し サブディレクトリの検索を「する」にしてください。この状態では、 「Grepを開始するディレクトリ=」の後に「...」が表示されます。 ※ キーボードから「D」キーを押しても選択できます。 (ディレクトリのツリーからマウスで選択してディレクトリの指定を したい方は、tukamacG.lzhをダウンロードして下さい。すると、ぜ んぜん、手動で入力することなく、ディレクトリの指定ができます。 でも、ちと、デカいファイルなんで、カッコ悪いです(^^; 組み込み方 法などは、tukamacG.lzhのマニュアルに記載しています) ◎ F. 検索ファイルワイルドカード指定  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・検索対象にしたいファイル名を、ワイルドカードによって指定します。 例1 *.txt 例3 nif08*.log 例4 daily8?a.t* ・複数のワイルドカード指定を指定したい場合は、「;」で区切って下さい。 例1 *.txt;*.log 例2 nif08*.log;nif09*.log 例3 daialy8?a.t*;daialy9*.txt ※ 検索対象ファイルは、必ず指定する必要があります。で、空白を入力してし まうとgrepできないので何かが表示されますがトラブルではありません(^^; ※ キーボードから「F」でも選択できます。 ◎ 1. 第1(最稀少)検索文字列  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・検索対象にしたい第1番目の『文字列』を指定します。 ※ 『第1(最稀少)検索文字列は、k_GREPの実効速度を決定します!!!』 検出したいファイルに含まれている文字列で、検出ファイル以外のファイル にはもっとも出現しないであろうと推察される文字列を指定して下さい!!! ※ 第1検索文字列として、正規表現による指定もできますが、検出速度を考 慮すれば、「|」を指定することは、できるだけ避けて下さい! ※ キーボードから「1」を押しても選択できます。 ◎ 2. 第2(最必須)検索文字列  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・検索対象にしたい『第2(最必須)検索文字列』を指定します。 ※ 検出したいファイルに含まれている文字列で、検出のための限定的な意味合 いを持つ文字列を指定します。第3文字列と同じ様な位置づけですから、あ まり、こだわる必要はありませんが、指定されないとk_GREPは検索しません (第1文字列、つまり、指定文字列が1つの場合は、秀丸エディタ上のgrep と変わりありませんから、そちらを使った方が便利で早いです) ※ キーボードから「2」を押しても選択できます。 ○ 3. 第3(次限定)検索文字列  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・検索対象にしたい『 第1(最稀少)検索文字列』を指定します。 ※ 第2(最必須)検索文字列と扱い上は等価ですが、必須ではありません。 ※ キーボードから「3」を押しても選択できます。 ─ k_GREP実行  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・k_GREPの検索を実行します。 ※ キーボードから「G」でも選択できます。 ※ 検索途中で止めたくなれば、[Esc]キーで中断できます。 ─ 停止  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・k_GREPを停止します。 結果リストを表示する前までは、[Esc]で終了できますが、リスト表示後では、 [停止e]を選択しないと、終了できません。 ※ キーボードから「E」を押しても選択できます。 ─ 拡張設定  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・k_GREPの動作を設定できます。 − サブディレクトリの検索のON/OFF − 正規表現を用いた検索のON/OFF − 上記2項目のワンアクション化のON/OFF − k_GREP検索結果の履歴ファイルの使用/非使用 − k_GREP検索時の排除ファイルの拡張子の指定及びON/OFF ※ キーボードから「S」を押しても選択できます。 ★ 以上の操作の指定のほとんどは、キーボーから可能です。ホームポジションを崩 したくない方は、アルファベットや数字で指定してみて下さい。 ■ k_GREPメイン画面の運用状態の表示  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 下記のようなメニュー表示状態が、k_GREPのメイン画面(検索前)です。 ※ 具体的な指定の例と、その意味(検出されるファイル)の例は●[8]章です。 ┌────────────────────────────────┐ │ ●ファイル検索の条件設定 [3.タイプイン方式] k_GREP Ver.1 水銀水 │ │  ◎ D. grepを開始するディレクトリ= c:\data\8gatu ...<> │ │  ◎ F. 検索ファイルワイルドカード指定= readme*.txt;manual?m.txt │ │  ◎ 1. 第1(最稀少)検索文字列= 論理積 │ │  ◎ 2. 第2(最必須)検索文字列= 書きマクロ │ │  ○ 3. 第3(次限定)検索文字列= 水銀水 │ │ ━━━━━━━━━━━━━━━━━━━━━━━━━━━ │ │ ───[ k_GREP実行 G ]──────────────── │ │ ━━━━━━━━━━━━━━━━━━━━━━[停止 e]━ │ │ ───────────[拡張設定 s]────────── │ └────────────────────────────────┘ ○ grepを開始するディレクトリに関する表示  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・grepを開始するディレクトリをフルパスで手動で入力します。 (ディレクトリのツリーからマウスで選択してディレクトリの指定を したい方は、tukamacG.lzhをダウンロードして下さい。すると、ぜ んぜん、手動で入力することなく、ディレクトリの指定ができます。 でも、ちと、デカいファイルなんで、カッコ悪いです(^^; 組み込み方 法などは、tukamacG.lzhのマニュアルに記載しています) ・サブディレクトリを検索するか、しないかで表示が変わります。 指定は、[拡張設定 s]の画面で行います。 − サブディレクトリを検索『しない』場合 ◎ D. grepを開始するディレクトリ= c:\data\8gatu − サブディレクトリを検索『する』場合...<>の表示が付加 ◎ D. grepを開始するディレクトリ= c:\data\8gatu ...<> ○ 検索ファイルワイルドカード指定  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・検索対象のファイルをワイルドカードによって限定できます。 − 一つのワイルドカード指定 ◎ F. 検索ファイルワイルドカード指定= *.txt (拡張子が"txt"である全てのファイル) ・複数のワイルドカードを「;」で区切ることで同時に指定できます。 − 複数のワイルドカード指定 ◎ F. 検索ファイルワイルドカード指定= nif09*.log;nif08*.log (ニフティの8月と9月のログファイルの意味(^^;) ○ 第1〜3検索文字列の指定  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・第1〜3検索文字列に、論理積による検索をしたい文字列を指定します。 ・この例では、「論理積」かつ「書きマクロ」かつ「水銀水」の、合計3種類 の文字列を全て含むファイルを検出しようとしています。 ○ 正規表現を使った検索に関する表示  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・正規表現を使った検索をするか、しないかで表示が変わります。 (指定は、[拡張設定 s]の画面で行います) − 正規表現を使った検索を『しない』場合 ◎ 1. 第1(最稀少)検索文字列= 論理積 ◎ 2. 第2(最必須)検索文字列= 書きマクロ ○ 3. 第3(次限定)検索文字列= 水銀水 − 正規表現を使った検索を『する』場合、"...<>"の表示が付加 ◎ 1. 第1(最稀少)検索文字列= 論理積|論理和 ...<> ◎ 2. 第2(最必須)検索文字列= 書きマクロ ...<> ○ 3. 第3(次限定)検索文字列= 水銀水|Suigwinsui ...<> ■ k_GREPメイン画面での指定注意  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ○ grepを開始するディレクトリに関する注意点  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・正しいディレクトリ名を指定して下さい(当然ですけど)。 秀丸マクロ側からは、指定されたディレクトリが存在するか否かを判定で ません。したがって、ウソのディレクトリ名を指定されてもわかりません。 ま、誤った指定をした場合は、結果的に検索不能になりますから、ウソの ディレクトリを指定しても、問題にはなりませんけど(^^; ※ ドライブの親ディレクトリの指定には気をつけて下さい。例えば、検索開始 ディレクトリを「c:\」としていして、検索対象ファイルを「*.*」などと すると、スワップファイルまで検索してしまい、極めて危険です! ○ 検索ファイルワイルドカード指定の注意点  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・拡張子の指定推奨 拡張子には、「*」だけの指定をなるべく避けるようにして下さい。 たとえば、「*.*」を検索対象に指定すると、フォントファイル、辞書ファイル、 ヘルプファイルなどもk_GREP検索してしまい、時間がかかってしまいます。 (*.fon *.dic *.hlpなどで第一検索文字がひっかかる場合は仕方ないです) ・検索対象から排除する拡張子の指定 *.fon *.dic *.hlp等をk_GREPの検索対象から外すオプションも用意されし ていますが、いずれにせよ第一段階のgrepは実行されてしまいます。 ま、第一段階のgrepは早いですから、実際的な問題はないと思います。 ○ 第1〜3検索文字列の意味  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・第1検索文字列から第3検索文字列には、「かつ」で検索したい文字列を次々に 指定していきます。たとえば、「論理積」かつ「書きマクロ」かつ「水銀水」と いう3種類の文字列を全て含んでいるファイルを検出したい場合は、下記の指定 となります。 ◎ 1. 第1(最稀少)検索文字列= 論理積 ◎ 2. 第2(最必須)検索文字列= 書きマクロ ○ 3. 第3(次限定)検索文字列= 水銀水 ※ 正規表現を使った複合検索(たとえば、「論理積」かつ「"書きマクロ"または "kakimac"」かつ「"水銀水"または"Suigwinsi"」での検索、などの例は第11章 を参照してください。ま、驚くほど、簡単なんですが(^^) ○ 第1(最稀少)検索文字列の注意点  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ★k_GREP検索速度の律速段階★ ※※ 第1(最稀少)検索文字列は、k_GREPの実効速度を決定します!!! 検出したいファイルに含まれている文字列で、もっとも検出ファイル以外の ファイルには出現しないであろうと推察される文字列を指定して下さい!!! ★ k_GREPは、第一段階の検索で秀丸のgrepを使い、第一段階の結果に基づいて それぞれのファイルを実際に開いて、第2、第3の文字列を検索し、候補の ファイルが、k_GREPの検索文字列全てに合致するか否かを検定します(^^;ゞ 従って、第一回目の検索でヒットするファイル数が多ければ多いほど、全体 としての検索速度は絶望的なまでに低落します(;_;) まあ、それだけ、現在 使用しているハードの能力が如実に出て来ると言うことです(^^; ・ ま、本家のGREPの仕様が変更されれば良いのですが、海外のOLSのGREPなどを みても、同じ仕様ですから我慢しましょう(当然なんですけれども(^^)) ※ 正規表現検索の場合でも第一文字列に「|」を使うのは避けた方が良いです!!! 正規表現による検索の場合でも、第一検索文字列には、「|」などを使わず 文字だけにしておいた方が早いです。「|」などは第2、第三検索文字列で 指定した方が良いと思われます。 ○ 第3(次限定)検索文字列の注意点  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・指定の順番 第2文字列を指定していない場合は、第3文字列をクリックしても第2文字 列の入力ダイアログになるので注意して下さい。 ○ 第1〜3検索文字列の正規表現の注意点  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・メタキャラクタの扱い 正規表現を使った検索は、はじめは意味不明でも、慣れてくると、ハマります。 たとえば、「|」は「または」の判別能力のある「印(メタキャラクタ)」です。 一応、正規表現でない検索中で、検索文字列の中に「|」がある場合は、誤指定 である場合が多いですので、これに対して注意がなされるようになっています。 ※ この辺の動き方は、実際に次の設定で試すことができます。文字で説明する よりも、実際に動かせば簡単に判ると思いますので、やってみて下さい。 ・設定 正規表現による検索を「しない」にする ・入力 第1〜3文字列のどれかに「秀丸|エディタ」を入力する。 (「|」は、半角です! 全角だと単なる文字です) ※ メタキャラクタについては、第11章で少しだけ詳しく実例で説明しています。 具体的な例をあげて解説しているので、正規表現に不如意な方はどうぞ(^^; ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ●[6] k_GREPの実行..........................................[検索を実行します] ─────────────────────────────────────── □ ここでは、条件指定して「実行」を選択した後の、検索実行中の様子を説明します。 第1検索文字列での検索と、第2、第3検索文字列の検索の2フェーズがあります。 ■ k_GREPファイル検索実行中画面  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・ファイル検索の実行には、次にあげる2段階があります。 − 第一検索実行中 秀丸のgrepを実行しますから、下記のような表示が現れます。 「見つかった数」の右にはリアルタイムにヒットファイル数が表示されます。 ┌───────────┐ │ grep処理中 │ ├───────────┤ │ 処理中:xxxxxx.xxx │ │ 見つかった数:27 │ │ 中断 │ └───────────┘ ※ 実際的には、第一文字列にヒットするファイル数が100を越えるような 場合、第2〜3の文字列で検索を続行するとかなり時間がかかります。 まあ、どうしても検出したい場合であれば、時間をかければ良いでしょ うが、通常は、第一検索文字列に他の文字列を指定し直して、k_GREPさ せたほうが得策と思われます。第一文字列検索中に、ダイアログボック スのヒット数を見て、「こりゃあかん」と思ったら、すぐに [Esc] を 押して、キャンセルして下さい。 ま、当マクロの仕様では、100だろうが200だろうが、遂行するようにし てはいます。根性のある方、時間を持て余している方、やってみるのも 猛暑の中、シャレになるかもしれません(^^)……もし、そんな酔狂な方 がいらっしゃいましたら、ご使用ハード環境、対象ファイル数、結果の 時間などをメールでお知らせ願えれば幸いです − 第2〜3検索実行中 第一検索でヒットしたファイルを開きながら検索します。 キャプションバー(タイトルバー)に途中経過を表示します。 (キャプション表示) ────────────────────────────────── k_GREP 検索完遂度 [77% 完了] (検出=8) [Esc:中断]  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・検索完遂度……第一検索でヒットしたファイル数に対して、第2〜3検索 の実行を完了したファイル数の百分率を示します。 ・検出……検索条件に合致したファイル数を表示します。 ・中断……作業を中断します。 ※ 時間がかかります。いらつかないように進行度を表示している訳です(^^) ※ いずれにおいても、[Esc]を押せば、実行をキャンセルできます。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ●[7] k_GREP結果リストの吟味....................[検索結果をメニュー表示] ─────────────────────────────────────── □ k_GREPによって検出された結果リストの扱いを説明します。 □ k_GREPは、指定された条件を満たすファイルを検出しますが、だからと言って、利用 者が求めていたファイルがあるかどうかは別問題。そこで吟味が必要である訳です。 ■ k_GREP結果画面  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 下記のようなメニュー表示状態が、k_GREPのメイン結果画面の例です。 ┌──────────────────────┐ │ k_GREP結果リスト (検出=4) 水銀水 │ │ □ c:\data\8gatu\iitenki.txt │ │ □ c:\data\8gatu\nettaiya.txt │ │ ○ c:\data\8gatu\atui\asedaku.txt │ │ □ c:\data\8gatu\atui\dorodoro.txt │ │──────────────────────│ │━━━━━ [結果の拡張処理 Oprion]━━━━━│ │━━━━━━━[k_GREP終了 End]━━━━━━━│ └──────────────────────┘ ○ 最上段の表示  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・検出されたファイル数を表示します。 ○ ファイル名のリスト  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・検出されたファイル名を全て表示します。 ・ファイル名の頭にある"□"、"○"、"◎"による操作がウリです(^^) □……閉じているファイル ○……すでに開いているファイル(開いているがアクティブではない) ◎……現在、注目中のファイル(アクティブな秀丸) ※注目中のファイルとは、現在、アクティブになっている秀丸のファイルを 示しています。なお、注目中ファイルは、その秀丸のどこかをクリックす ることによって、閲覧できます。閲覧は、拙作・閲覧マクロ(k_LOOK)のサ ブセット版になっています。k_GREPの閲覧中という作業目的を最優先させ ていますから、k_LOOKと比べると少し機能を限定しています。 ・クリックするごとに、下記のような動作をします。 □→◎……閉じているファイルは、クリックで自動的に開きます。 ○→◎……すでに開いているファイルは、注目(閲覧可能の)状態にします ◎→□……現在、着目中のファイルは、閉じます。 ・この3状態("□"、"○"、"◎")は、クリックするごとに循環変化します。 例:クリックごとに下記のように変化します。 □→◎→□ ○→◎→□ ◎→□→◎ ・リストのファイルを開いたり、閉じたりできますが、その閉じたりする順番が かなり、美しかったりします。いわゆる、ファイルの開閉ヒストリー順を覚えて いたりする、影の努力があったりします(^^) ・以上、まとめると「k_GREPで検出されたファイルリストのメニュー画面を使え ば、検索条件にあったファイルを、クリックするだけで開いたり閉じたりでき さらに、そのファイルを閲覧することさえ、極めて簡単にできるんですワ(^^) ◎ ファイルの閲覧方法  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 1)ファイルを何回かクリックして、頭に"◎"が表示されるようにします。 2)現在アクティブになっているファイルが、頭に"◎"が表示されているファイルで すですから、続けて、アクティブになっている秀丸上(その文書のどこか)をク リックします。([Esc]キーを押しても同じ結果が得られます) 3)閲覧状態になります。(詳細は[7]章を参照) 基本的な操作は閲覧マクロ(k_LOOK)と同じです。 4)閲覧が終了すれば、元の「k_GREP結果リスト」の表示に戻ります(^^) ※ 閲覧の具体的な方法は、[7],[8]をご覧ください。 (kakimacD.lzh,kakimacE.lzhのk_SRCH,k_LOOKも参考にどうぞ(^^;ゞ) ※ 結果リストに「◎」が表示されているのに閲覧MODEに移行できない場合、 結果リストを表示している状態で[Esc]を押してみて下さい。閲覧MODEに なって、[◎]印だったファイルを閲覧できます。閲覧を終了するためには、 閲覧MODEで[Esc]を押して下さい。 ■ k_GREP結果の拡張処理  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 現行のバージョンでは、2種類の拡張処理が用意されています。 ・k_GREPは、検索結果を保存できます。保存先は次の二種類。 − k_GREP 履歴ファイル(指定自由) − クリップボード 下記のようなメニュー表示状態が、拡張処理画面です。 ┌──────────────────────┐ │ k_GREP結果リスト (検出=4) 水銀水 │ │ □ c:\data\8gatu\iitenki.txt │ │ □ c:\data\8gatu\nettaiya.txt │ │ ○ c:\data\8gatu\atui\asedaku.txt │ │ □ c:\data\8gatu\atui\dorodoro.txt │ │──────────────────────│ │━━[リストをk_GREP履歴ファイルへ保存 log]━│ │━━━[リストをクリップボードへ転送clip]━━│ │━━━━━━━[拡張処理終了 End]━━━━━━│ └──────────────────────┘ ○ リストをk_GREP履歴ファイルへ保存  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・検出されたファイル・リストをk_GREP履歴ファイルへ保存します。 ・k_GREP履歴ファイルを利用するか/利用しないかは、k_GREPメイン画面から [設定]を選択して、設定画面から設定をしてください。 ・k_GREP履歴ファイルは、デフォルトでは、秀丸ディレクトリの下に作られた kakimacディレクトリに k_GREP.log という名前のファイルです。 ・k_GREP履歴ファイルは、任意のディレクトリの任意のファイル名に設定でき ます。 ※ k_ALIS(もうすぐ公開される次版では k_OPEN に名称変更)を使って、登録を ファイル名まで完全に指定すれば、クリック一発で、k_GREP履歴ファイルを 開くことができます。(そろそろ、「書きマクロ」による文書作成環境が 意味のある統合環境を構築しつつありますなぁ〜(^^)(^^)(^^)) ○ リストをクリップボードへ転送  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・検出されたファイル・リストをクリップボードへ転送します。 検索結果を履歴ファイルにまで保存することはないと思われる検索の場合でも 検出した結果を続けて利用することがある場合、クリップボードへ転送しておく と再利用が可能になります。 ・たとえば、タグジャンプして結果ファイルを移動する(あるいは開く)場合にと ても便利です。 ※ 「タグ・ジャンプ」とは、フルパスで書かれてあるファイル名の行にカーソ ルを置いて「タグジャンプ」を指定すれば、そのファイルが自動的に開く便 利な機能です。本来は、プログラマ用に作られた機能ですが、日本語文書を 扱う場合にも極めて強力な武器になります(^^) ○ 保存リストの形式について  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・検索条件がわかります。 ・タグジャンプが可能な形式です。 ・出力サンプル ----- k_GREP Report 1995/08/24(木)16:54:56----- 1 grep・開始のディレクトリ= c:\data ...<> 2 ファイル・ワイルドカード指定= t*.txt 3 第1(最稀少)文字列= 論理積 4 第2(最必須)文字列= 書きマクロ 5 第3(次限定)文字列= 水銀水 検出ファイル総数=4個 c:\data\8gatu\iitenki.txt c:\data\8gatu\nettaiya.txt c:\data\8gatu\atui\asedaku.txt c:\data\8gatu\atui\dorodoro.txt ・これを一種の「テキストファイル・データベース」として活用する展開も考えら れます。と言うか、grepを使ったファイル検索自体、発想としてはかなり、生の テキストファイルでの文書データベース化という発想を基本にしていると思って います。ま、これを発展させるためには、キーとなる文字列を文書に書いておく とかの作業が必要になりますが、具体的な例は第11章を参照ください。 ・サブディレクトリの検索、正規表現の使用などのオプションは、k_GREPメイン画 面と同様に追加保存/転送されます。 ・タグジャンプの方法 k_GREP履歴ファイルを開くか、クリップボードに転送したk_GREP結果リストを いずれかの秀丸にペーストします。 そこにはファイルリストがありますから、ジャンプして開いてみたいファイル 名の行にカーソルを置きます。続けて、「その他(O)→タグジャンプ(T)」を選 択すると、目的のファイルが開きます。 ※ 「タグジャンプ」は、秀丸のツールバーに是非とも選択しておきたい機能 のひとつですネッ(^^) ■ k_GREPの終了での注意  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・k_GREPは、検索結果メニューで終了を選択すると、一度、確認した上で終了します。 ※ 終了時の注意事項としては、「急いで終了しない」ってことです(^^; と言うのは、k_GREPのみならず、grepというのはある程度時間がかかる作業です。 特にk_GREPは、バカ正直にファイルを開いて検索したりするもんですから、スピー ドは期待できません。で、やっと手に入れた検索結果、簡単に消滅させてなるもの かという気持ちがあるわけです(^^) ・ また、k_GREPでは、クリックだけで簡単にファイルが開けるようになっています。 調子に乗って次々とファイルを開いてしまい、結果リストで「○」が数多く残っ たままで終了しがちです。すると、k_GREPを終了すると、ファイルが山のように 開かれていてウンザリ……と言うことも少なくありません。終了する前に、不必 要なファイルは、閉じておきましょう。k_GREPは、開くのも簡単ですが、閉じる のも簡単です。クリック一発「×」に変更で良いのですから(^^; (つまり、ファイルの開閉さえ、クリックだけでやろうという超モノグサなマク ロの仕様になっております(^^)。と言うか、検索だけで疲れているのに、ファイ ルを閲覧するだけで、またまた、エディタの終了ボタンにマウスを持っていくこ とに、へとへとになってしまった体験から、ここまでモノグサにしました) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ●[8] 閲覧 の表示内容.........................[検索情報をキャプションに表示] ─────────────────────────────────────── □ k_GREPに含まれる閲覧MODEは、公開済みのk_LOOK Ver.1 のサブセット版ですが、多少、 仕様の変更があります。これは、k_GREPの主要目的である「欲しいファイルを確実に 探す」という動作が最優先されるように動くためですので、ご了承をば □ k_GREPでの閲覧の目的とは「ある検索条件を設定してファイルをリストアップしたが その中に、本当に検出したかったファイルがあるかどうかを、目で見て確認」するこ だと捉えています。したがって、他のファイルへの移動は意識的に不能にしてありま すが、逆にリストに上がっているファイルならば、結果リスト画面でマウスクリック だけで簡単にファイルの開閉は可能です(^^) □ 閲覧MODEは「閲覧MODEメイン画面」と「その他・多数」の局面の画面(^^) (キャプションバーとは、タイトルバーとも言い、ウィンドウ枠の最上行です) □ 閲覧MODEで、事実上、MS_WORDなどの文書ファイルが開けてしまいますが、これは、 危ないです。スピードも速くありません。各自、十分にフンドシをしめて…じゃな かった、注意して、なおかつ自分で責任をもって操作して下さい。 ■ 閲覧MODEメイン画面  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 下記のようなキャプションバー表示状態が、閲覧MODEのメイン画面です。 ____________________________________ ●閲覧 [↑/↓/Sp/t/e/o]動 [f/j/m/n/s/F1]操 [Bs/Esc]元/了  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ○ 表示内容(3パート)の概略  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 表示内容は、下記の3パートに大きく分かれています。 ・[↑/↓/Sp/t/e/o]動………移動&スクロール系 ・[f/j/m/n/s/F1]操……操作系 ・[Bs/Esc]元/了………終了系 ■ [↑/↓/Sp/t/e/o]動………移動&スクロール系  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ [移動&スクロール系]のキー操作 ファイル中を "動き" まわるためのキー操作です。 ・[↑/↓]矢印キー……上下方向へスクロールを開始します。 − スクロール速度は、スクロールと同方向のキーを再度押すことで 「低速→中速→高速→低速」と循環して切り替わります。 − スクロールと逆方向の矢印キーを押すと、押した矢印キーの方向 で、低速からスクロールを開始します。 ※ kSearch と違って、[PgUp][PgDn]は、本来の動きをします(^^; ・[Sp]スペースキー……スクロールを開始/停止します。 − スクロールしていない時にスペースバーを押すと、低速でスクロ ールを下方向に開始します。 − スクロール中は、その方向によらず、スクールを停止します。 − スクロール停止中は、停止時の方向へスクロールを再開します。 ・[t/e/o]T,E,Oキー……文頭(Top)/文末(End)/元(Original)の位置へ − Tキーで文頭へ、スクロール中でも一気にジャンプします。 ( Home キーも同様の動きをします) − Eキーで文末へ、スクロール中でも一気にジャンプします。 ( End キーも同様の動きをします) − Oキーで、元の位置へジャンプします。 なお、元の位置とは、該当する秀丸で閲覧MODEが初めて現れたカー ソルの位置です。 ※ PgDn、PgUpキーは、どの状態からでも使用できます。 ※ なお、PgDn、PgUpキーは、それぞれ Ctrl, Shift キーでも代用できます。 (右手にコーヒーを持っている場合に、左手だけで頁がめくれます(^^)) ■ [f/j/m/n/s/F1]操………操作系  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ [操作系]のキー操作 各種の移動系の操作を行って、快適な閲覧をサポートします。 ・[f]Fキー……検索(Find) − 閲覧MODEの検索は、k_SRCH v0.9.1 のサブセット版です。 詳しくは、下記のマニュアルをどうぞ。 FWINF LIB-12 KAKIMACD.LZH 秀丸・快適全体検索(kSearch2)) [サブセット版の変更点] ・起動は、メイン画面起動に限定 ・設定項目の変更不能 (これらは、閲覧の性質と、起動速度獲得のためです(^^;) ★特に、k_GREP版では、[f]キーで出るキャプションバー表示の検索 ヒストリーには、k_GREPさせた文字列が登場します。これは、単に 検索したいのではなく、k_GREPさせた文字列を検索したい場合が想 定されているからです。あくまでk_GREPさせた文字列の検索に全力 を尽くすという考え方です。 ★[f]キーで全体検索を行って、再度、閲覧MODEに戻った場合は、検索 ヒストリは、元の、k_GREPで指定した文字列の状態に戻っています。 ※ なお、検索に際しては、閲覧MODE.mac の[★設定★]部分で 完全に k_SRCH.mac を使ってしまう指定も可能です。もちろんn すでに kakimacD.lzh をダウンロードして k_SRCH V.1.1 が導入 されていることが前提になりますが(^^; ただし、k_SRCHは、起動設定に関わらず、メイン画面で起動する ようになっています。k_SRCH単独で実行する場合には、ちゃんと 起動設定通りに起動しますから、ご安心を(^^; ・[j]Jキー……ジャンプ(Jump) − 行番号を指定し、その行へのジャンプができます。 − ファイルの範囲を超えた場合、範囲を示し再入力を促します(^^; ※ あまり知られていないようですが、行番号を入力する際に、 数字の前に「+」「-」の記号を付けると、現在の行番号から 相対的な行番号位置へ指定した数字分ジャンプします(^^)。 例:現在、200行にいるとして「+50」と入力すると、250行へ 移動します。また、同様に現在、200行にいるとして、 「-80」と入力すると、120行へジャンプします。 意外に便利だったりするんですが、「こんなん、当たり前」 なのかなぁ? ヘルプにも書いていないと思いました…(^^; ・[m]Mキー……最大化(Max)/元の大きさ − ウィンドウサイズを、一時的に最大化したり、元のサイズに戻し たりします。 − 閲覧MODEが起動された秀丸に限って、終了時には元のサイズに戻し ます。戻したくない場合は、「設定」で変更してください。 ・[n]Nキー……ファイル名(Name)の確認表示 − 閲覧MODEは、キャプションバー(タイトルバー)に名前を表示します。 [Tab]をポコポコ押して簡単に秀丸を移動していると、現在閲覧して いるファイル名がわからなくなったりします(^^;  こうした場合に、「N」キーを押すと、数秒間、ファイル名を表示 して、ファイル名が確認できます。なお、表示は秀丸によるものでは なく、当マクロが表示しているので、ちょっと通常表示と異なってい る人もいるかもしれません(^^; ・[F-1]ファンクションF−1キー……オンラインヘルプ(^^; − 簡単なヘルプです。曲がりなりにも"Windowsソフト標準仕様(^^;" ■ [Bs/Esc]元/了………終了系  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ [終了系]のキー操作 終了させます(^^) ・[Bs]バックスペースキー……元の位置で終了 − k_LOOKを起動した秀丸の元に位置に戻ります。起動した秀丸以外から でも、一気に、起動した元の位置にまで戻ります。(あくまで起動し た秀丸で編集していたファイルを優先させる立場です。他の秀丸は、 あくまで、「閲覧」している傍観ファイルってカ? ・[Esc]エスケープキー……現在の位置で終了 − 現在のカーソル位置で、閲覧MODEを終了します。 ※ 閲覧MODEを起動した秀丸に限り、閲覧MODEの終了にあわせて、ウィン ドウのサイズを変更して閲覧していた場合、元のサイズに戻して 終了するか、閲覧していたサイズのままで終了するかを設定でき ます。詳細は、第5章の「●[5]設定方法」をどうぞ。 ※ 閲覧作業の効率だけを考えれば、閲覧する秀丸は最大化された方が 圧倒的に文書が見やすいのですが、他の開かれているファイルと同時 に閲覧したい場合もあるので、選択可能になっています。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ●[9] 全体検索による快適検索(^^)..........................[k_SRCHサブセット版] ─────────────────────────────────────── □ 検索には、「検索メイン画面」と「全体検索画面」の2つがあります。 □ [f]キーにより、検索画面に移行します。これはk_SRCHサブセット版です。 以下に概略を説明しますが、詳細は、kakimacD.lzh をご覧下さい (なお、k_SRCH では、「現在開いているファイルの全体を検索する」機能を「全文 検索」と呼んでいましたが、「全文」とは、全てのファイル、つまり、ディスク にあるファイル全て、というイメージを持つそうです。確かに、ちょっとおかし いなあとは思ったんですが、他に適当な文言が見つからなかったモノですから、 「全文検索」と言いましたが、以降、「全体検索」とします。これもディスク全 体という見方が出来なくもないのですが、エディタ上で検索するのは普通にいっ 現在開いている文書。で、全体を検索すると言うと、現在のファイル全体という ことになるだろう、との判断です。) ■ 全体検索メイン画面  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 下記のようなキャプションバー表示状態が、全体検索メイン画面です。 特に、k_GREPさせた検索文字列が、[1]〜[3]のヒストリに入っています(^^)! だって、この検索文字列を見つけたくてgrepしたんですもんね。 ____________________________________ ●通常 [f/g/r/F1/Esc/Ret]操 [1]論理積 [2]書きマクロ [3]水銀水  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ○ 上記例の表示内容の説明  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ [f]手動入力 ・検索文字列を手動で入力。正規表現などの場合に活躍します。あるいは、 検索語が画面に見えていない場合にも使います。 [g]選択入力 ・画面上に検索対象の文字列があれば、その先頭と末尾でリターンを押すだ けで文字列を取得できます。(なお、このバージョンでは、正規表現によ る検索状態であっても、[g]によって文書上から文字列を取得した場合は、 強制的に通常検索になるようにしています。kSearchが終われば自動的に、 再度、正規表現検索に戻ります。驚かないでくださいませ(^^;) (ま、入力したい文字列が画面に見えていながら、手動で入力しなければ いけない、なんて愚は、この情報化時代で、しちゃいけませんです) [r]検索MODE切替 ・通常検索と正規表現に基づく検索を交互に切替えます。キャプションバー の表示の先頭の記号が「●」は通常検索、「◎」が正規表現検索です。 なお、通常検索の場合、操作の所に[r],、正規表現の場合、[R]として、 正規表現であることに一応注意を促すようにしています。文字列を検索す るだけであれば、正規表現を使っても殆どかわりないと思いますが、半角 の「()[]+-」などを含んだ場合は、気を付けて下さい! [F1]ヘルプ ・一応、F-1によるオンラインヘルプ。Windows標準仕様を満たしています(^^; ヘルプファイルを別マクロにしているため、ヘルプの記述内容が多量になっ ても、k_SRCHの実効速度を落としません(^^)(書きマクロ標準仕様(^^;?) [Esc,Ret]終了 ・k_SRCH v0.9.1 を終了します。終了時には、通常検索か正規表現検索か、過 去3回の検索語、設定内容などが同時に保存されます。ハードディスクが、 カリッと音を立てますが、安心して下さいませ。 [1]〜[3]全体検索履歴 ・k_GREPで指定の検索文字列を記憶しています。なお、新しい文字列を検索し た場合は、もっとも古い3番目にあった検索語が消えます。また、3つの検 索語のいずれかを再度検索した場合は、順番が入れ替わるだけです。 上の例では、2を押すと、「エディタ」を全体検索します。で、順番は、 [1]エディタ [2]秀丸 [3]検索 となります。ごく普通の感じですね(^^)。で、次に新しく「マクロ」を検索 させると、下記のようになります。ごく自然です。 [1]マクロ [2]エディタ [3]秀丸 ★k_SRCHに対して、k_GREPに組み込まれている検索部分のもっとも大きな相 違点は、検索後の履歴が、その検索使用時に限られるという点です。 ★連続した全体検索の中に限り、検索後ヒストリは、保存されます。 しかし、一度、閲覧MODEに戻ると、k_GREP中の全体検索語はキャンセルさ れ、k_GREP検索語にヒストリ文字列は再度、戻るようになっています。 ★ 一度、上の画面に戻ると、検索文字列はキャンセルされ、k_GREPで指定の 検索文字列が、再度設定されます。あくまで、「k_GREPの検索過程」にあ ることを最優先させた仕様です。 ※ k_SRCHと比べて、「[s]動作設定」が除かれています。 ★連続した全体検索の中に限り、検索後ヒストリは、保存されます。しかし、一度、 閲覧MODEに戻ると、k_GREP中の全体検索語はキャンセルされ、k_GREP検索語に戻る。 ■ 全体検索画面  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 下記のようなキャプションバーの表示状態が、全体検索の画面です。 ____________________________________ ○通常 『論理積』12個 [↑]<2> [↓]<9> [t/e/o/F1/Bs/Esc/Ret]操  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 上図は基本的に、「"論理積"という検索語を検索中で、文書全体には12個発見。 現在、注目している検索語"論理積"は、上に2個、下に9個"秀丸"があります」と言 うような意味です。(2と9を足しても12にならないと言わないで下さいね(^^;。 現在注目している検索語は含まれていませんのです。上にあと幾つあるか、下にあと 幾つあるか、そんな考え方をしていただければ、よろしいようです(^^))まあ、検索 語と検索語の間にカーソルがある場合は、3と9となります。 ○表示内容の説明  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ [↑,PgDn]上検索 ・上にある検索語へ移動(最上部の場合はビープ音) [↓,PgUp]下検索 ・下にある検索語へ移動(最下部の場合はビープ音) [t,Home]最初 ・最初の位置の検索語へ移動 [e,End]最後 ・最後の位置の検索語へ移動 [o]元の位置 ・元のカーソル位置へ移動(検索語の選択状態は解除) [F1]ヘルプ ・オンラインヘルプ(^^; [Bs]元で戻る ・元の位置に戻り、検索メイン画面へ戻る [Esc]現在で戻る ・現在の位置で、検索メイン画面へ戻る [Ret]このまま全体検索終了 ・現在の位置で、検索を終わり、閲覧メイン画面に戻る。 ※ k_SRCHに使われているkSearch2は、拙作 tukamac6.lzh に収録した kSearch の バージョンアップ版です。最初や最後の検出位置へ一気に飛べるようになりま した(だからと言って、50も100も検出されるような検索は、基本的には 、なりませぬ、なりませぬ。あ、でも、してみて、してみて……?)。また、 秀丸マクロでの検索に関連した部分を少しわかりやすく触れていますから、興 味のある方はどうぞ(^^; 「基本的な検索はわかったから、正規表現やオプシ ョンなどの動きについても、もっと説明したらんけぇ〜」と嬉しい催促をして いただく方もあります。しばしお待ちを ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ●[10] k_GREP の動作設定 ─────────────────────────────────────── □ k_GREPのメイン画面から"[拡張設定 s]"を押して下さい。動作設定ができます。 ■ 動作設定の画面  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 下図のような画面が「動作設定」画面です。 (設定画面の設定例) ┌────────────────────────────────┐ │ ● 設定(H) k_GREP Ver.1 (C) (C) 水銀水 │ │ ─────────────────────[検索動作(H)]─ │ │ [ 検索オプションの設定 ] │ │ ・サブディレクトリの検索(S)=[×]:しない │ │ ・正規表現を使用した検索(R)=[○]:する │ │ [ 設定のワンアクション化 ] │ │ ・ワンアクションでの復帰(O):[○]:即もどる │ │ ─────────────────────[入力方式(H)]─ │ │ [ 3.手動入力(前回記憶)方式 ] │ │ ・[◎]:選択中 │ │ ─────────────────────[閲覧関連(H)]─ │ │ [ 閲覧MODE移行時のサイズ ] │ │ ・該当秀丸のサイズ(Z):最大化する │ │ ─────────────────────[他の設定(H)]─ │ │ [ k_GREP履歴ファイルの設定 ] │ │ ・履歴ファイルの使用(Y):[○]:とります │ │ ・設定:c:\hidemaru\k_GREP01.LOG │ │ [ k_GREP検索排除ファイル拡張子の設定 ] │ │ ・拡張子による検索の限定(X):[○]:する │ │ ・排除指定:com;exe;dic;dll;fon;drv;vbx;ttf;hlp;dat │ │ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ │ │ ──────────────────────[完了 &e]─ │ └────────────────────────────────┘ ★基本的には、[...] で記述している部分をクリックするとオンラインヘルプが 出るので、それを参考にした方がわかりやすいかなと思ったりします(^^; (例:[検索動作(H)] とか、[ オプション設定の状態 ]) ●─[検索動作(H)]─  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 秀丸の検索のオプションの下記の設定ができます −サブディレクトリを検索する/しない −正規表現を使った検索をする/しない −上記設定のワンアクション化も指定できます なお、設定の結果は、k_GREPのメイン画面でそれぞれ表示されます □ [ 検索オプションの設定 ]  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・−サブディレクトリを検索する/しない  grepするファイルを指定したディレクトリより下のディレクトリまで 検索するかどうかの設定 ◎ D. grepを開始するディレクトリ= c:\data\8gatu ◎ D. grepを開始するディレクトリ= c:\data\8gatu ...<> ・−正規表現を使った検索をする/しない  正規表現によって文字列を検索させるかどうかを設定できます。 なお、正規表現を使う場合、慣れていないと思った通りの検索ができ ないばかりか、とんでもない検索結果を出すこともあります。 正規表現については、秀丸ヘルプなどを参照してください ◎ 1. 第1(最稀少)検索文字列= 論理積 ◎ 1. 第1(最稀少)検索文字列= 論理積|論理和 ...<> □ [ 設定のワンアクション化 ]  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・ワンアクションでの復帰(O):[○]:即もどる/[×]:完了で終了 ・設定画面では、複数の設定が変更されるように想定されていますから、 最下段の「完了」を選ばないと元のマクロ画面へ戻りません。 ・しかし、「サブディレクトリの検索」「正規表現の指定」の項目は、 スパッスパッと素早く設定したいものです。で、設定を変更したと同時 に、元の画面へ戻り作業が続けてできる指定が、この「ワンアクション 化」です。少しでも快適に、切り替えが行えるようにとの配慮です。 ・ただしと言うか当然というか、上記の2設定以外は、「完了」を選 択しないと元の画面へは戻りません。 ●─[入力方式(H)]─  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・手動入力(タイプイン/前回記憶)方式(3ステップ入力)とは、検索開始ディレク トリなどを、既存のデータを利用して簡単に指定できるようにするための方式 です。現版では、もっとも基本的な「手動入力(タイプイン/前回記憶)方式( 3ステップ入力)」をサポートするのみです。 ・第1ステップ…ディレクトリ(フルパス)指定(手動入力)  grepを開始するディレクトリを指定します。サブディレクトリまで検 索させたい場合は、「設定」の「検索動作」で設定してください。ディ レクトリ名の右にと表示されれば、サブディレクトリまで 検索します。 ・第2ステップ…ファイル・ワイルドカード指定  検索したいファイル名のワイルドカードを指定します。特に拡張子は 極力指定するようにしてください。text*.*というパターンでは、com やexeファイルも検索してしまいます。\n"+ " なお、複数のワイルドカード指定をする場合には、それぞれ「;」 で区切ってください。(例:mail*.txt;nif*.log) ・第3ステップ…検索文字列指定(2〜3)  k_GREPで検索したい検索文字列を指定します。最大3種類まで可能で すが、2種類は必ず指定する必要があります。1種類の場合は秀丸にあ るgrepをお使い下さい。早いです(^^; ※ 少し「閃いた」方なら、k_GREP3で3ステップと言うことは、 もしかして、k_GREP2、k_GREP1とかあって2ステップ、1ステップ が可能だったりしてと想像されるかもしませんが、正解です(^^) ただ、まだ、ちょっと時間の都合で開発が遅れております。ピドナ へ帰って、ちょっと開発の様子をチェックしなくちゃ(^^; ●─[閲覧関連(H)]─  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・k_GREPの結果リストから、ファイルを閲覧する場合、その秀丸のサイズを設定 します。 ・ファイルを閲覧する場合、k_GREP中の閲覧であることを考えれば、 閲覧ファイルが検出したいファイルかどうかを判定したいのですから、 できるだけ大きく秀丸を広げて閲覧したようが良いわけです。最大化し て閲覧したいとお考えの方は「最大化する」に設定すればよいでしょう。 ・しかし、一方では、すでに開いているファイルと比べることで、検出 したいファイルかどうかを判定したい場合もあります。こうした閲覧方 法をとる方は「変更なし」に設定しておけばよいでしょう。 ●─[他の設定(H)]─  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ □ [ k_GREP履歴ファイルの設定 ]  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・k_GREPによる検索の結果を指定したファイルに履歴としてとる機能の設定 ・ 検索結果の拡張処理を選択すると履歴処理ができます。履歴ファイ ルを指定したり、履歴ファイルをとるか/とらないかを選択できます。 とらない、と指定した場合、k_GREPの結果の拡張設定でファイルへの 履歴は取れなくなります。というのは、履歴ファイルを取る場合、フ ァイルを開くのでクリップボードへ転送するよりもほんのわずかです が時間がかかります。それが嫌な人はここで、履歴を取らない、よう にしてください。 ・なお、「履歴処理−設定」をクリックすることで、履歴を取るファイ ルは、任意のディレクトリにある任意の名前のファイルを履歴ファイ ルとして自由に指定できます。 ※ なお、「履歴ファイルを取る」に設定した場合でも、のべつまくなく k_GREPの結果を履歴ファイルに追加するわけではありません(^^)。 k_GREPの結果画面で、[結果の拡張処理]を選択ししたのちに、続けて [リストをk_GREP履歴ファイルへ保存 log]を選択した場合にのみ、履歴 ファイルへの追加保存が実行されるだけです。 ※ 従って、無操作で勝手に履歴ファイルが膨れ上がるようなことはありませ んのでご安心を(^^) □ [ k_GREP検索排除ファイル拡張子の設定 ]  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・k_GREPによる検索対象から排除するファイルの拡張子を設定します。 ・ k_GREP Ver0.90では、論理積による文字列検索実現のために、第一ステップのg repのあと、第一検索文字列を含むファイルをすべて開いて第2検索文字列な どの有無を調べます。したがって、検索対象のファイルのワイルドカード指定 に「*」や「???」を指定してしまった場合(極力避けてください)、exe やcomファイルもエディタで開いてしまうことになります(^^; これはあまりよろしくありません。で、排除拡張子をここでせっていするわけ です。grepが機能アップした暁には役目を完了する機能ですがとりあえず、こ れでしのいでください ・ なおデフォルトは「COM;EXE;DIC;DLL;FON;DRV;VBX;TTF;HLP;DAT」 の拡張子を持つファイルが検索対象から排除されていますが、「排除指定」の 段をクリックすることで、自由な拡張子を指定できます。また、k_GREPの初期 値に戻す等もできます(^^)"; ●排除拡張子設定画面 (「拡張子による検索の限定」をするにして「排除指定」をクリックする) (参考画面) ┌────────────────────┐ │ ●排除ファイルの拡張子入力 │ │ 1 k_GREPによる初期値に戻す。 │ │ 2 自由な拡張子を設定する。 │ │ 0 戻る"; │ └────────────────────┘ ※排除指定のk_GREPによる初期値:com;exe;dic;dll;fon;drv;vbx;ttf;hlp;dat ※ なお、排除指定拡張子名は、おそらく80バイトが上限であったような気が します(^^;? それ以上多くの拡張子を指定したい場合は、k_GREP3.MAC に直接、書き加えて下さい。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ●[11] k_GREP・日本語文書作成支援マクロとしての用法のご提案(^^; ─────────────────────────────────────── □ 日本語文書作成支援マクロとしてのk_GREPの利用法 k_GREPは、日本語の文書を快適に書くための秀丸エディタ用マクロです。 『論理積』とか、『正規表現を用いた検索指定』などと、ちょっと耳慣れない言葉 の意味が分からない人もいるかもしれません。(こうした言葉は、元来、プログラマ の方だけが知っていれば良かったような言葉かもしれませんから) ■ k_GREPの基本検索……(単純なand検索)  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ○単純な and 検索によるファイルの検索の意味  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・and 検索とは、「かつ」を使った検索のことです。例えば、「A」かつ「B」など の検索を意味します。論理積検索とも呼ばれています。 ・(第一検索文字列)and(第二検索文字列)and(第三検索文字列)が可能です。 もちろん、(第一検索文字列)and(第二検索文字列)も可能です。いずれの検索も 論理行になくても、ファイルのどこかに存在していれば検出できます(^^) ・ 一見、当たり前の検索であるようですが、今まで不可能だったファイル検索です。 例えば、『「論理行」と「水銀水」と「書きマクロ」』の3語を含むファイルを k_GREPでは簡単&確実に検出できるようになったわけです(^^) 従来のGREPでは、上記の3語が「同一論理行にある場合」に限り、その"行"を検出 できたわけです。しかし、一般的な文書の場合(特別に同一行に書くような書式を 前もって定めておかない限り)、3語が同一行にあることは稀です。 おまけに、 私たちがファイルを検出したい場合、「○○と××という文字があるファイルを探 し出したい」という場合がほとんどです。 ○○と××は同一行にあるかどうかな んていっさい関知しないのが普通です。 で、こうした要望が出た場合は、「まず、○○でgrep」をかけて、その後で、 grepの結果一覧から、ファイル名からある程度、当たりを付けて、しかる後、シコ シコとひとつづつファイルを開閉して、××があるのかどうかを、丁寧に検索して いたわけです。 でも、人情として「○○と××という文字があるファイルを一発で探したい」と 思いますよね。この希望がやっとk_GREPで実現したというわけです(^^) ・3個までの重複GREPが可能 k_GREPでは、検索文字列を3個まで指定することで、AND検索を実質的に3重にして 検索できます。特徴は、"xxx" 、"yyy"、"zzz"が同一論理行になくても、ファイル のどこかに3つの文字列を含むファイルを検出できる点です(^^) 例1:A and B :2重の論理積GREP("xxx" かつ "yyy") ・「xxx」と「yyy」をファイルのどこかに同時に含むファイルの検出 (もちろん、上記の2文字列はファイルのどこにあっても問題なし(^^)) 検出条件の概略= "xxx" AND "yyy" ・指定例 第1検索文字列= xxx 第2検索文字列= yyy 第3検索文字列= 例2:A and B and C :3重の論理積GREP("xxx" AND "yyy" AND "zzz") ・「xxx」と「yyy」と「zzz」を含むファイルの検出 (もちろん、上記の3文字列はファイルのどこにあっても問題なし(^^)) 検出条件の概略= "xxx" AND "yyy" AND "zzz" ・指定例 第1検索文字列= xxx 第2検索文字列= yyy 第3検索文字列= zzz ○ ファイル名のワイルドカード指定の方法  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・検索対象ファイルをワイルドカードで限定できます。この指定により、検出スピ ードを向上させることができます。 ※ 以下の例では、ファイル名として、"NIF"+"月日".LOGというファイル名がある と仮定します。月日は半角で二桁、一桁の場合はゼロが付きます。たとえば、 8月分のログはNIF0801.LOG,NIF0802.LOG,…,NIF0830.LOG,NIF0831.LOGとして 記録されているとします。同じく12月分であれば、NIF1201.LOG,,,NIF1231.LOG といった具合です。これが、365日分あるという前提です。では、具体的な ワイルドカード指定による検索対象ファイルの限定の例を以下に示します。 あ、もちろん、いろんなテキストファイル(拡張子が"txt")もあるとします。 例1:全てのテキストファイル指定 ◎ F. 検索ファイルワイルドカード指定= *.TXT この場合は、検索開始が指定されたディレクトリ(あるいはそれ以下 のディレクトリで)拡張子が"txt"である全てのファイルを検索対象とし て、k_GREPが実行されます。多少時間はかかりますが、全てのテキスト ファイルを検索するので安心です(^^) 例2:限定的なワイルドカードの使用 ◎ F. 検索ファイルワイルドカード指定= NIF*.LOG 検索対処のファイル名が前もってわかっている場合には、そのファ イルのわかっている部分のワイルドカードを使用して下さい。検索ス ピードが上がります。上記の例では、"NIF"で始まり、拡張子が"LOG" というファイルだけを検索します。 例3:さらに限定的なワイルドカードの使用 ◎ F. 検索ファイルワイルドカード指定= NIF09*.LOG さらに、上記では、NIF*.LOGのうち、9月分のログファイルを検索 対象に限定することができて、さらにスピードアップが可能です。 この限定では、NIF0101.LOG,NIF0102.LOG,,,,NIF1231.LOGなどが、 検索対象となります。 例4:複数のワイルドカード指定1 ◎ F. 検索ファイルワイルドカード指定= nif09*.log;nif08*.log 複数のワイルドカードを「;」で区切ることで同時に指定できます。 上記の例では、NIF08,NIF09でそれぞれ始まるファイル名のファイルが 検索対象として限定されます。したがってNIF0801,NIF0802,,,NIF0931 などのファイルが検索対象となります。 例5:複数のワイルドカード指定2 ◎ F. 検索ファイルワイルドカード指定= nif09*.log;nif08*.log;*.txt logファイルだけでなく、テキストファイルも検索しておきたい場合 には、このように"*.txt"を追加すればよいだけです。 例6:ちょっとひとひねりしたワイルドカード指定 ◎ F. 検索ファイルワイルドカード指定= nif0?0?.log ワイルドカード指定を少しひねると以外とおもしろい検索ができた りします。この指定で、1月から9月の1日から9日、つまり、一桁 の月と日のログを検索できます。 ※ ただし、拡張子に"*"に使うのはできるだけ避けて下さい。一応、デフォル トでは、dic,fon,tff,,,などのファイルは排除するようになっていますが、 やはり、できるだけ、ちゃんと指定した方が検索速度が速くなります(^^) ■ k_GREPの幅広い検索例……(正規表現検索を組み合わせた and検索)  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ○ 正規表現を使った、比較的簡単な検出  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・正規表現を使うとさらに多様な検索が可能になります。 ・正規表現検索を使いたい場合には、拡張設定で[正規表現を使う]にします。 ・以下、「|」は、半角の"|"です。全角の"|"はメタキャラクタとして作用しません。 ・k_GREPの鉄則「第一文字列には、もっとも稀な文字列を使う」をお忘れ無く(^^; ※ 以下、A、B、Cと表記するものは、それぞれ文字列A、文字列Bなどの意味で、 文字列を示します。各自、AやBに好きな文字列を入れて考えて下さい 例1... A and (B or C) 検索 必ずAを含み、なおかつ、BまたはCを含むファイルを検出します。つまり、Aを 含みBも含むファイルか、Aを含みBを含むファイルのいずれかを検出します。 当然ですが、Aを含んでいても、BもCも含まないファイルは検出されません。 また、Aを含み、BとCの両方を含むファイルも検出されます(^^; 例えば、「書きマクロ」を含み、「水銀水」か「Suigwinsui」を含むファイル検出 ・指定例 第1検索文字列= 書きマクロ ...<> 第2検索文字列= 水銀水|Suigwinsui ...<> 第3検索文字列= ...<> ※ 理論上は上記の指定は下記の例2の指定と同値ですが、例2では時間がかなり 多く必要になってしまいます。『第一検索文字列には「|」を使わない』が、 k_GREP使用上の鉄則です(^^) ※ なぜ、「|」を使った「または」検索(論理和検索)をするのかということで すが、水銀水と書いたか、Suigwinsuiと書いたか、定かでない場合に有効です。 もっと言えば、Suigwinsuiと正しく書いたか、Suiginsuiと誤記をしたか、あや ふやな場合に有効です。grepして確かにあるはずだけど出てこない、という場合 も、ご自分で例えば、「秀まるお」と書いたと思いこんでいても「秀丸夫」とな っている場合とかもありますからね(^^) あるいは英語で誤記しやすい単語など のgrep検索にも有効です。「ジェニファーへのメールは絶対Sundayと記入した」 と思いこんでいても実は「Sanday」と書いている場合もありますもんね。このへ んの誤記しやすいパターンは、各個人個人で設定すれば、ヒットは確実です(^^) 例2... (B or C) and A 検索(できるだけ使わないで下さい) BまたはCを含み、なおかつ、必ずAを含むファイルを検出します。 例えば、「水銀水」か「Suigwinsui」を含み、「書きマクロ」を含むファイル検出 ・指定例 第1検索文字列= 水銀水|Suigwinsui ...<> 第2検索文字列= 書きマクロ ...<> 第3検索文字列= ...<> ※ 「(B or C) and A 検索」は、「A and (B or C) 検索」と同じです。 第1検索文字列でのヒットが例2の方が多くなるので、検索時間が 長くなってしまうのがわかります。マズイ指定の例とわかりますね(^^; で、これからはもし、「|(または)」を指定するときは、「または」の 条件のない文字列を、第1文字列として指定すればよいわけです。 例3... A and (B or C or D) 検索 必ずAを含み、なおかつ、BまたはCまたはDを含むファイルを検出します。 例えば、「書きマクロ」を必ず含み、「水銀水」か「Suigwinsui」か「HGD01603」 を含むファイル検出する場合を考えましょう。 ・指定例 第1検索文字列= 書きマクロ ...<> 第2検索文字列= 水銀水|Suigwinsui|HGD01603 ...<> 第3検索文字列= ...<> ※ 要は、「|」で検索したい文字列をつなげて行くだけです(^^) 以下、 A and (B or C or D or E) 検索、A and (B or C or D or E or F) 検索 なども全く同様です。ま、実効的な意味があるのかどうかは別ですが(^^; 例4... A and (B or C) and D 検索 必ずAとDを含み、なおかつ、BまたはCを含むファイルを検出します。 例えば、「書きマクロ」と「kakimacG」を必ず含み、「水銀水」か「Suigwinsui」 を含むファイル検出します。 ・指定例 第1検索文字列= 書きマクロ ...<> 第2検索文字列= 水銀水|Suigwinsui ...<> 第3検索文字列= kakimacG ...<> ※ 「A and (B or C) and D 」は、「A and D and (B or C)」と同値です。 例5... A and (B or C) and (D or E) 検索 必ずAを含み、なおかつ、BまたはCを含み、なおかつ、DまたはEを含むファイ ルを検出します。 例えば、「書きマクロ」を必ず含み、「水銀水」か「Suigwinsui」を含み、 「kakimacG」か「k_GREP」を含むファイル検出します。 ・指定例 第1検索文字列= 書きマクロ ...<> 第2検索文字列= 水銀水|Suigwinsui ...<> 第3検索文字列= kakimacG|k_GREP ...<> ○ 正規表現を使った、少し複雑なファイル検出  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・さらに一歩進んで、正規表現の泥沼にはまった指定方法を少々ご紹介します(^^; ・基本として、 A and B 検索を取り上げていますが、「簡単な検索」で挙げた 3つの検索語による論理積検索などの検索の場合でもまったく同じです。 ・ただし、「日本語文書のファイル検出のための正規表現」ですから、比較的、簡単 な例示になっています。よくある「電話番号検出」とか「住所検出」などは、それ らの詳しい例示のある参考書などを見て下さい(使い方は一緒ですけど、指定の方 法が、慣れないうちはメンドウでちょっとだけ難しかったりするだけです(^^;)。 例1... A and B 検索における、正規表現の指定 必ずAを含み、なおかつ、Bを含むファイルを検出しますが、AかBの少なくとも 一つに「正規表現による限定」をつけるファイル検出。 例えば、条件として「行頭に"□ 日本語文書作成支援"」があり、加えて「水銀水」 か「k_GREP」を含むファイル検出 ・指定例 第1検索文字列= ^□ 日本語文書作成支援 ...<> 第2検索文字列= k_GREP ...<> 第3検索文字列= ...<> ※ 第1検索文字列の「^□ 日本語文書作成支援」において、"^"が行頭を示す おまじない(メタキャラクタ)です。もちろん、論理行頭です。 ※ 「AかBの少なくとも一つに「正規表現による限定」をつける」検索があるわ けですから、両方とも正規表現による限定を付けても問題ありません。次の例 では、「行頭に"□ 日本語文書作成支援"があり、かつ、"kakimac"+1文字の ような文字列を含んでいるファイルを検出します。 ・指定例 第1検索文字列= ^□ 日本語文書作成支援 ...<> 第2検索文字列= kakimac? ...<> 第3検索文字列= ...<> ・検索ヒットは、kakimacA,kakimacB,,,kakiamcX,kakimac5などなど。 例2... A and B 検索における、正規表現の指定 必ずAを含み、なおかつ、Bを含むファイルを検出しますが、AかBの少なくとも 一つに「正規表現による限定」をつけるファイル検出の例です 例えば、条件として「行頭に"●第2章"、●第3章」などの記述があり、加えて 「水銀水」という文字列があるファイルを検出する場合です。 ・指定例 第1検索文字列= ^●第[0-9]章 ...<> 第2検索文字列= 水銀水 ...<> 第3検索文字列= ...<> ※ この場合、行頭に「●第1章 〜はじめに〜 」、「●第2章 展開」など と書かれたファイルが第1検索でヒットします(^^) ※ ちなみに、第12章などを検出しようと思えば(1文字以上続く場合) 第1検索文字列= ^●第[0-9]+章 ...<> と記述するだけでOKです。 ※ さらに、「第15章」「第5章」を検出しようと思えば、 第1検索文字列= ^●第([0-9]|[0-9])+章 ...<> などと指定します。 例3... A and B 検索における、正規表現の指定(メタキャラクタを含む場合) 必ずAを含み、なおかつ、Bを含むファイルを検出します。で、AかBの少なくとも 一つに「正規表現による限定」をつけるファイル検出を考えますが、検索文字列に 文字として認識すべきメタキャラクタを含む場合を想定し、対応方法を示します。 例えば、条件として「行頭に"●[2]導入方法"」があり、加えて「水銀水」を含むフ ァイル検出の場合は下記のようになります。 ・指定例 第1検索文字列= ^●\[2\]導入方法 ...<> 第2検索文字列= 水銀水 ...<> 第3検索文字列= ...<> ※ メタキャラクタとは、半角の下記の文字などをさします。 ( ) [ ] . * + | ^ $ ? それぞれに直接見える以外に、正規表現上の意味があります。たとえば"^" は、「行頭の」という意味などでした。 ここで問題になるのは、「●[2]導入方法」という文字列を検出したいわけで すが、このまま第1検索文字列に指定してしまうと、"["と"]"がメタキャラク タとして意味を持ってしまいます。そこで、"\"を挿入することで、メタキャ ラクタではなく、文字として"[2]"として認識するように指定するわけです。 ※ 正規表現による検索を指定していない場合(通常の検索)、メタキャラクタは メタキャラクタとしての役割はなくて、単なる文字列ですから、こうしたメン ドウな心配はいりません。 ※ 正規表現については、「使いマクロ(tukamac)」シリーズの検索の第2発で詳 解する予定だったんですが、なにやかやと忙しくて…というより手際が悪くて 延び延びになっております、そのうち出します……(^^;ゞ で、秀丸ヘルプなどをご参考に。これで一応はすべてわかります。あ、ちょっ と抜けている正規表現の指定などもありますが、よく他のヘルプ部分を見ます とわかります。(って、どこが抜けているか、いま書けばよいのですが、忘れ てしまいました)。ちなみに、最近の雑誌などで見られる秀丸の正規表現スペ ック表みたいなのがありますが、誤りの箇所があります。他のソフトのスペッ ク表でも同様の誤りが散見されますね。これだけソフトが多くなると仕方が無 いのかもしれませんが、やっぱ、そこはお金を取って書いているライター。し かも雑誌という媒体の影響力も鑑みれば、ちょっとヘルプだけを見て原稿を書 くという風潮も、考えものかもしれんですねえ。ま、正しくヘルプを書いてい ない方が悪い、という水掛け論も成り立ちますが、スペック表を堂々と載せる のであれば、最低限、簡単なチェックぐらいは期待してしまいますよね。 ※ てな感じで、正規表現による検索指定は、それだけでかなり遊べてしまう機能 ですから、それなりに遊んでみて下さい(^^; 例4... 正規表現でgrep指定する例2(メタキャラクタを含む場合) このマニュアルのように「●[3]…」などを検出したい場合は、メタキャラクタの 扱いに注意しながら次に様に指定します。 ・指定例 第1検索文字列= ^●\[[0-9]+\] ...<> 第2検索文字列= 水銀水 ...<> 第3検索文字列= ...<> これにより、「●[3]…」「●[12]…」などの行が全てヒットします。 ○ k_GREPした結果を有効に利用する  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・履歴ファイルの利用(k_GREPの長期的な運用例) grepには時間がかかりました。この結果をk_GREP履歴ファイルに保存しておき さらに、この履歴ファイルに拙作マクロk_OPENを使って、エイリアス指定をし ます。すると、秀丸出版社の再騰社長宛の文書といえば、すぐにタグジャンプ することが可能になり、一層、テキストデータベース化が進みます(^^;  履歴ファイルを編集してもタグジャンプに影響を与えませんから、不要な ファイルリストは削除すれば、より一層、ファイルリストが意味を持ちます。 ・履歴ファイルへの出力例 例えば下記のような履歴ファイルがあれば、k_GREPさせた日時も簡単に把握でき ますから、その情報の価値や再度のk_GREPによる検索が必要か否かなどが一目瞭 然で把握できます。 (Win95版の秀丸では使えなくなり公算が強いですが、ファイル名の後ろに、追 加して、コメントを書いても、Win3.1版の秀丸ではちゃんとタグジャンプし てくれるので、非常に便利です。Win95が良いのはわかるんですけど、はたし て私たちに直接どれだけの恵みを与えてくれるか……(^^;) ----- k_GREP履歴 1995/08/30(水)23:40:03----- 1 grep・開始のディレクトリ= C:\aki95\adv_kbk9 2 ファイル・ワイルドカード指定= *.txt 3 第1(最稀少)文字列= 神戸 4 第2(最必須)文字列= 医療 5 第3(次限定)文字列= 新設|開学 検出ファイル総数=4個 c:\aki95\adv_kbk9\kk10kn11.txt   <<--極めて重要です c:\aki95\adv_kbk9\kk10kn11.txt c:\aki95\adv_kbk9\kk10kn12.txt c:\aki95\adv_kbk9\presen\kk11ps13.txt <<--要チェック c:\aki95\adv_kbk9\presen\kk11ps14.txt ----- k_GREP履歴 1995/09/29(金)10:26:57----- 1 grep・開始のディレクトリ= C:\aki95\mag_o09 ...<> 2 ファイル・ワイルドカード指定= *.txt 3 第1(最稀少)文字列= タイ 4 第2(最必須)文字列= 経済|ベトナム|海外投資 5 第3(次限定)文字列= 大阪 検出ファイル総数=11個 c:\aki95\mag_k09\job_kei9.txt c:\aki95\mag_k09\km11kn11.txt c:\aki95\mag_k09\km11kn12.txt c:\aki95\mag_k09\km11kn51txt c:\aki95\mag_k09\km11kn52.txt  <<--最終! c:\aki95\mag_k09\kink1121.txt c:\aki95\mag_k09\kink1122.txt c:\aki95\mag_k09\inteview\kp2_1112.txt c:\aki95\mag_k09\inteview\kmag1114.txt <<--確認すること c:\aki95\mag_k09\rep\kmag1113.txt c:\aki95\mag_k09\rep\kmgkkn11.txt ・結果リストの利用(k_GREPの短期的な運用例) k_GREPでは、その結果リストをクリップボードに出力できます。これは履歴フ ァイルへの出力とは少し違い、比較的短期的な利用に向いています。新規の秀 丸を開き、そこへペースとする。そうするとk_GREPを終了した後でも、ゆっく りとタグジャンプして各ファイルを調べたり、再利用したりすることが可能に なります。 ■ k_GREPで、テキストファイルをデータベース化する方法  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  実は、「grepを実行して必要なファイルを検索する」という発想は、これ自体が、 すでに「テキストデータベース」を指向しているのです。通常、データベースとい うと、データベースソフトを使って、グチョゴチョ、難しいことをやらないといけ ないと思いこみがちです。で、メモフィールドにはXXXXバイトしか入らないから、 巨大な文書の場合どうしようとか、悩んでしまうわけです。  しかし、データベース化したい内容が、膨大な数値ではなく、膨大な文書の場合、 デーベースソフトを使うよりは、せいぜいディレクトリごとに内容や時期を分けた ファイルを格納して、この状態のファイルに対してgrepで必要なファイルを探し出 す、と言う方法の方が簡単で実用的だと考えています。テキストファイルはそのま まの状態で、その集合体すべてをデータベースとして捉えるわけです。既にあるテ キストファイルを使うわけですから、メンドウではありません。この「簡単さ」が 最大のポイント。  いくらWindows時代のデータベースはGUIで簡単とは言っても、使いこなすために は、プロフェッショナルの知識と経験が必要になります。振り返れば、私たちは、 データベースという黄金の言葉にどれだけ多くの夢を抱いたことでしょう。で、結 局のことろ、お正月に出す年賀状のデータベースが関の山だったりします。だった ら、今までの手帳の住所一覧で良かったんじゃないかと、つらい反省の日々を過ご したりします。ま、これはこれで大変有意義なことで、データベースがいかなるも のか、あるいはデータベース構築を趣味として楽しい時間をすごすることができた という意味で(それでも住所録からの転載をするためにキーボードをたたいた時間 の方が、データベースソフトを扱った時間より、はるかに長いことが通例ではあり ます)、大変、重要な経験(データベースソフトになんか手を出さないで、ワープ ロのラベル印刷の機能で十分だった、と悔やんでみても、それはそれで良かったん ですよ、きっと)だと思うことにしましょう。  でも、テキストを仕事とで使っている場合は別です。  やはり、迅速かつ簡単かつ確実に、探し出したいファイルを検出できなくてはい けません。そのためには、まず、データベースを作るために労力を費やさないこと だと説明しました。次に、迅速に検出するために、文書に『ちょっと』だけ手を加 えます。この「ちょっとだけ」というのもポイントです。聞くところによりますと、 CALSだか、なんだか、文書にとんでなく複雑なマークを記入するように推奨し ている流れがあるとか、ないとか。確かに正確かつ詳細に分類された情報が文書に 記入されていれば、便利であることは事実でしょう。  しかし、これらのメリットを認めるにしても、自分の能力を振り返ってみると、 4〜5種類以上の分類が文書を書いた時点でできると自信を持って言える人がどれ だけいるでしょう(^^; せいぜい、これはメールだよ、とか、○○社宛の文書、自 社の○○部長への報告書、などが限界だと思っています。(ま、10種類以上の分類 ができるかたは、CALSだか、なんだか、厳密に分類した方が良いには決まって いるんですけど、良いから良いことが実践でるんだったら、パソコンなんて触って いないでしょうね、ぜ〜んぶ自分の中に格納すればベストなんですから。で、昨日 書いたことだって忘れてしまうような、私が、自分自身のために作ったのがk_GREP だったりします)。う〜ん、またまた長くなりなんで本題の例示です(^^;  で、具体的な方法は、極めて簡単で、この章の例3に示したような、簡単な記 号を行頭に置き、続けて、内容や日付を書き込んでおくだけです。 例: 2|●秀丸出版社・担当、再騰社長 3|●来年度、広告展開のご提案 このくらいは、普通の文書にでも書き込むでしょう。この簡単すぎる ほどの簡単さが良いのです! 「行頭に●」。続けて必要事項の記載 これなら、なんとか続けられ、なおかつ、覚えられるんじゃないでし ょうか(^^)(ちなみに「行頭●」は行計算の見出しマークです(^^;) これを効率よく検索したい場合は下記のような指定が有効です。 ┌───────────────────────────────────┐ │ ●ファイル検索の条件設定 [3.タイプイン方式] k_GREP Ver.1 水銀水 │ │  ◎ D. grepを開始するディレクトリ= c:\95data\HMsya ...<> │ │  ◎ F. 検索ファイルワイルドカード指定= *.txt │ │  ◎ 1. 第1(最稀少)検索文字列= ^●秀丸出版社.*社長...<> │ │  ◎ 2. 第2(最必須)検索文字列= ^●.*提案...<> │ │  ○ 3. 第3(次限定)検索文字列= ...<> │ │ ━━━━━━━━━━━━━━━━━━━━━━━━━━━ │ │ ───[ k_GREP実行 G ]──────────────── │ │ ━━━━━━━━━━━━━━━━━━━━━━[停止 e]━ │ │ ───────────[拡張設定 s]────────── │ └───────────────────────────────────┘ これをベースに │  ◎ 1. 第1(最稀少)検索文字列= ^●.*社長...<> と指定すると、○○社・○○社長への文書や、××会社・××社長への 文書など、今まで社長宛に作成した全文書が簡単に検索できます。 この例では続けて、 │  ◎ 2. 第2(最必須)検索文字列= ^●.*提案...<> │ として、第二検索文字列に「提案」を指定しています。したがって、 結果として、全ての社長へ出した、提案の文書が全て検出されるわけです。 他には、 │  ◎ 1. 第1(最稀少)検索文字列= ^●秀丸出版社...<> と指定すると、秀丸出版社宛の全ての文書、たとえば、再騰社長宛の文書、副 社長宛の文書、部長、課長宛文書、経理の花子ちゃん宛のデートのお誘いメー ルなど、秀丸出版社宛に書いた全ての文書が検索されます。 と、まあ後は、あなたの発想次第で、いっそう便利な文書データベース化さ れた快適なパソコンライフを堪能できるはずです。こうした手法は、もっと もっと書籍などで紹介されるべきだと思うんですけど、なぜなんだろう?  ま、いわずもがな、と言ってしまえばそれまでなんですけど(^^; その うち、バンバンこうした手法を紹介する書籍がでると、わたし、確信して るんですけど、はいはい(^^;(^^;(^^; ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ●[12] k_GREP・Windows上のワープロソフトと連携した使い方の第一歩 ─────────────────────────────────────── □ 日本語文書作成支援ツールとしてのエディタとワープロの連関操作 k_GREPは、日本語の文書を快適に書くための秀丸エディタ用マクロです。ところで 一方、MS−WORD、一太郎、など、Windows上では、さまざまなワープロソフト が利用できます。で、一部には、エディタとワープロは対立して存在するというよう な考え方もあると聞きますが、書きマクロシリーズには、kmWORD,kmTAROシリーズも 用意されているように(まだ、未公開(^^;、マクロのわかりやすい組み込み法が今 イチよく解っていません(^^;)、秀丸エディタだけで日本語文書作成環境が改善でき る物ではありません。「Windows上での快適な日本語文書作成環境の構築」を謳って いるというのは、こうしたソフト、つまり秀丸エディタと他の著名なワープロソフト との有機的な関連の元で、利用者がより快適に日本語文書作成に携われるような環境 づくりをめざしているしだいです(^^) □ そこで、一種の「規格外」の動作ではありますが、秀丸grepをベースにした当k_GREP で実現可能な、番外編の利用法をご紹介します。 ■ MS−WORDの文書ファイル検索  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・重ねて言っておきますが、規格外、だろうと思いますので、実行は各自の責任の元 慎重にお願いいたします(^^; ・で、MS-WORD6のファイルですが、拡張子「DOC」になっているモノです。まあ、 テキストファイルでも同じ拡張子を使う場合があるでしょうけど、MS-WORD6が、 とりあえず、「DOC」を占領しちゃったという感じです(^^; ファイル検索は、 まったく普通の検索と同じで、検索対象ファイルの拡張子に「DOC」を指定する だけです。 ・検索は、MS-WORD6の文書ファイルに対して実行されます。この際、開いてみれば わかると思いますが、MS-WORD6の文書ファイルは、一つのファイルの中に、見出し や表題、著作権者などが書き込まれています。また、これは、幸いにも、テキスト として認識できる形です。んでもって、おおざっぱに言ってしまえば一種のバイナ リファイルのようなMS-WORD6文書ファイルをテキストファイルとして開けてしまえ ば、とりあえず、ファイルの検出ができます。 ・注意すべき点は、ワードファイルの本文は、書体情報などによって単純な文字列で はなくなっているケースが多いことです。すると打つ手はない、ということになり そうですが、「文書情報」に目を付けます。ここには、文書の概略を記入しますが それらの文字列はほぼ確実にそのままgrepでヒットできます(^^) この部分への記 載を有効に使えば、ワード文書も通常のテキストファイルと同様にgrepできます! ・秀丸grepは、MS-WORD6文書ファイルも高速に検索します。ところが、これを開くと なると時間がかかります。で、単に文書ファイルを検索したい場合であればk_GREP を使わないで、秀丸のgrepを使った方が早いと思います。ま、多重検索したい場合 は、きもちをゆったりもってk_GREPを実行して下さい。 ・最後に重ねて申し上げます。規格外の用法(だと思う)ですので、ご注意あれ(^^; ■ 一太郎Ver.6の文書ファイル検索  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・これも、MS-WORD6の場合とまったく同じで、拡張子が「JBW」になるだけです。 ・注意する事項も全く同じです。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ●[13] k_GREP の使用上の注意点 ─────────────────────────────────────── □ 何点か、注意すべき点を挙げておきます(^^;ゞ ■ (無題)の秀丸から k_GREP を実行した際の" k_GREP.tmp "の表示  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ [症状] ・(無題)の秀丸のキャプションに" k_GREP.tmp "と一時的に表示されます。 [処理] ・当マクロが終了した段階で、元の(無題)に戻りますのでご安心を(^^) [理由] ・通常、「保存されているファイルを開いている秀丸」、「(無題)の秀丸」、この2種 類の秀丸では、それぞれ grep を実行した際の、秀丸の挙動は異なっています。 つまり、保存されているファイルを開いている秀丸からそ grep を実行すると、新し く秀丸を開き、そこに結果が表示されますが、(無題)の秀丸の場合、新しい秀丸は開 かれず、(無題)の秀丸に結果が表示されます。  普通の検索の場合には、(無題)の秀丸に表示されようが、新しい秀丸に表示されよ うが、どちらでも良いのですが、 k_GREP においては、かなり、見苦しい状態になり ます。これを回避するため、一時的に(無題)の秀丸を" k_GREP.tmp "秀丸に変えてい るだけです。  k_GREPを終了させる時に、起動しさせた(無題)秀丸のキャプションにチラリとこの 名前が見えてしまいますが(^^;、ま、ご愛嬌と言うことでご勘弁をば。 ※ ちょっと見苦しいですが、この処理により、(無題)の秀丸(新規作成など)から でも、安心して k_GREP を実行することができます(^^) ■ GREPした内容と現時点の内容が異なる場合がありますが…(^^)  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ [症状] ・第一検索で検出した文字列が、[○]や[◎]印のファイルで検出されないことがある。 ([−]印のファイルでは発生しません。また、この症状が現れるのは、最初のリスト において、[○]や[◎]印が表示されるファイルだけで、その後、閲覧操作を行って [−]印が[◎]印になったファイルでは発生しません。) [理由] ・第1検索では『GREP』を使い、第2・第3検索では『ファイルを実際に開く』ことで 検索を行います。GREPは記録されてある物理ファイルに対して実行され、第2・3検 索は、現ファイルに対して実行されます。第2・3検索では、対象となるファイルが 現在開かれていると、その開いているファイルを検索します。したがって、ハードデ ィスク上には記録されていても、現在開かれているファイルでは編集作業が行われ、 第1検索文字列は消去されている場合が考えられます。同様の現象は、現在編集中の ファイルにある文字列を追加した場合にも同様に発生します。こうしたケースでは、 上記の 一見・ミスマッチングが発生しますが、理屈の上ではしごく当然の現象であ るわけです(^^; [対応] ・当然だけども気持ち悪いと感じる場合は、k_GREPを実行する前に、更新中のファイル を全て、上書き保存すると、こうしたミスマッチはなくなりますが……。上書き保存 という作業には十分に注意する必要があります。 ■ マクロ中断された場合の注意点(動作環境の書き換え)  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・k_GREPは、マクロ実行時、一時的に動作環境の設定を変更します。 普通に使っていて終了させるにあたっては、状態をすべて元に戻しますから安心して ご使用下さいませ。 ・ただ、停電やHDのクラッシュ等でマクロが強制的に中断した場合(書きマクロに限 らず、Windows上でうごくものなら、なんでもでしょうが)、下記の秀丸エディタ動 作環境が変更されているかどうか、チェックする必要があるかもしれません。 ・マクロが実行中に変更している部分は... 「その他(O)−動作環境(E)−ユーザーインタフェース(U)−検索での表示(B)」 の項目です。これを「選択する」に変更して当マクロは動いています。もちろん 普通に当マクロを使用して終了する場合には、通常「点滅する」に設定している 方でも、終了前に元の「点滅表示」に設定し直しますからご安心を(^^) ただし、普通の終了方法ではない方法(マクロ実行中にリセットするとか)で強 制終了(いわゆる異常な強制中断)した場合には、ここを調べてみて下さい。元 の設定と変わっている場合があるかもしれません。  他の設定は、当マクロから変更していません。 ■ k_GREP のアンインストール  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・秀丸のマクロ用ディレクトリから、k_GREP??.MAC を全て削除して下さい。 また、秀丸ディレクトリの下に作った"kakimac"ディレクトリに作られている k_GREP00.KDF ファイルを削除して下さい。 ※ その他、マクロ実行、マクロ登録、キー登録などの詳細については、kakimac5.LZH のマニュアル(【参考】部)をお手数ですがご覧くださるようお願い申し上げます。 ■ キャプションバーへの表示文字数の制限(一般)  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・キャプションバーへの表示文字数 秀丸エディタでは、キャプションバー(タイトルバー)への表示制限はまったく行っ ていないそうです。Windowsの基本仕様は、80バイト(全角文字で40字)のようです。 で、キャプションの表示で右端が切れたりしますが、仕方ありません(;_;) ・あの 3DWin で制限解除が可能!? なお、この80バイトの制限は、あまりにも有名な3DWin(MGH03232 大西幸男氏が著作 権を保有)を実行させると、キャプションバーへの文字数制限がなくなるようです。 キャプションに文字をいっぱい並べたい方は、FWINF LIB#9で3DWinをDLして、組 み込んでテストしてみて下さい。そのための長いキャプション表示文字列もマクロ 中には用意されています(^^;(私は3DWin Ver.2.10で確認。現在は、3DWin95となっ ているようですが、キャプションバーへの表示文字列の制限については未確認です) ■ メッセージボックスでの文字切れ(一般)  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・「メッセージボックスで文字が途中で切れている」との指摘がありました。これは、 秀丸側では何の操作もしていないそうなので、別のソフトとの兼ね合いが原因のよ うです。 ・ちなみに、これまた名作の誉れ高い下記のソフトを常駐させた場合、 メッセージボックスでの文字列の表示が500バイトで切れるようです。 ●標準ダイアログ3D化計画(Dialog Special)DlgSP.exe(おはるKGG03545)氏作 ■ Windows 95 での動作(バッファ・サイズの縮小?)  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・ Windows95の上で、秀丸エディタは動作しているようですが、当マクロの動作は 確認しておりません。また、秀丸95上でも動作すると考えられますが、確認して おりません。いずれにしても、おそらく動作するとは思いますが、確かなことは いえません(^^; も少ししたら、私もWindows95に移行しますが、それまでは、 ゆっくりWindows3.1環境が続きます。 ・ なお、既存の書きマクロシリーズは幸いなことに、そのほとんどがWindows95の 上の秀丸95でも元気に動いているらしいウワサは耳にします。ただし、k_DATE は、どうやら「バッファ不足」を起こして止まるようです。32ビットになったの ですが、バッファのサイズは小さくなったのかもしれません(;_;) 不要なサブ ルーチン等を削除するなりの対応をとると、元通り、動き出します。又は、変数 を短いものに置換するなどの対応策も有効です(^^; ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ●[14]「書きマクロ」リスト............................................[概略編] [B 書きマクロシリーズ・既存公開リスト 1995/12/20 現在] ────────────────────────────── NIFTY Serve FWINF LIB 12 95/12/20 22:26:10(奇しくもFWINF最期の日(^^;) 番号 ID 登録日付 バイト 参照 データ名 536 95/10/21 64840 346 B KAKIMACK.LZH 秀丸日本語文書作成支援K集V1 497 95/09/03 14192 218 B KAKIMACJ.LZH 秀丸・クリップボード履歴保存復元 462 95/07/20 14070 288 B KAKIMACF.LZH 秀丸・ズーミング等簡単設定V1 450 95/07/04 37992 733 B KAKIMACE.LZH 秀丸・楽々ファイル閲覧(汎用版V1) 443 95/06/19 28366 656 B KAKIMACD.LZH 秀丸・快適全文検索(kSearch2) 438 95/06/06 16564 476 B KAKIMACC.LZH 秀丸・文字数&文字種動的表示 418 95/05/09 24634 371 B KAKIMACB.LZH 秀丸・カーソル上文字コード連続表示 413 95/04/25 48488 425 B KAKIMAC5.LZH 秀丸 自動字詰目標行数達成率 358 94/12/07 35235 1076 B KAKIMACA.LZH 秀丸日本語文書作成支援αAV1 323 94/11/01 26002 998 B TUKAMAC6.LZH 秀丸マクロ作成支援新版6集 299 94/10/06 29980 906 B KAKIMAC7.LZH 秀丸日本語文章作成支援7集V2 297 94/10/04 27232 950 B KAKIMAC8.LZH 秀丸日本語文書作成支援8集V1 262 94/08/29 18310 900 B KAKIMAC6.LZH 秀丸日本語文章作成支援6集V2 252 94/08/13 36002 938 B KAKIMAC4.LZH 秀丸日本語文章作成支援4集V2 228 94/07/07 20591 1073 B KAKIMAC1.LZH 秀丸日本語文章作成支援1集V2 227 94/07/05 10952 702 B MAKUMAC4.LZH 秀丸マクロ作成支援4集V1 223 94/06/30 19113 1117 B KAKIMAC3.LZH 秀丸日本語文章作成支援3集V1 218 94/06/24 9681 1135 B KAKIMAC2.LZH 秀丸日本語文章作成支援2集V2 ※ kakimac9.lzh は、音声による、行数などの状態報告マクロですが、音声ファイル 超大のため、公開をあきらめております ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ●[15]最後に.....................................................[謝辞などなど] ─────────────────────────────────────── □ 謝辞、著作権などについて ・当マクロは、斉藤秀夫氏のシェアウエアである[秀丸エディタ for Windows Ver1.4x] のためのフリーウエアです。このマクロは無料ですが、使用するのに必要な秀丸は、 シェアウエアという形態をした商品です。また、当マクロ集は秀丸の作者とは全く無 関係です。当マクロ集で生じたトラブル等で迷惑のかからないようお願い致します。 ・なお、使用上のいかなる損失に対しても保証はできません。それぞれ各自の責任におい て使用・改変等を行って下さい。 ・当マクロ集に関する苦情、問題点、要望、バグなどを発見した場合等々の対応ですが、 FWINAL の19番会議室か、メールにて、どうぞ。出来る限り前向きな対応はいたします。 ・当マクロはフリーウエアですが、砂場に落ちている「猫の運幸」ではありません(^^; 出版権を含む複製権、二次的著作物の利用に関する原著作者の権利等の一般的著作権 を放棄したものではありません。 ・当マクロのマクロ作成上の導火線となった「脚注マクロ」は、米国西海岸留学中の前途 洋々たる青年医師((^^;??)masasanの基本アイディアと緻密・厳密・過酷なアドバイス により、現在、インターネットを通じて製作が続いています。ちと、停滞中だけど(^^; まあ、予定よりじっくり熟成させますので(^^;、気長にお待ち下さい ・当マクロを作成するにあたり、数多くのオンラインソフト作成者の公開されたソフト がいかに素晴らしく重要であるか、当然の事なんですがしみじみ感じてる今日この頃。 多謝、多謝。そうしたみなさんの歴史の上に快適な現在の環境があるんだなあと、ほ んと、深く感謝する気持ちがわいてきます。誠意を持って対応すればするだけ、その 気持ちを土足で踏みにじっていくのが現実の様相であるとしても、せめてこれから確 立してゆくであろうオンラインソフトの世界、あるいは通信により作られる世界は、 自由で良識のある、快適な方向へと進みますように……。 ・仕事の都合で、人類の歴史とか、地球環境とか、勉強させてもらいました(^^; で、 感じたのは、歴史ってオモシロイ、でした。25才で子どもを生んだとして、私たちの わずか10世代前は、250年前、江戸時代です。その10世代前は今から500年前…。そう 考えると、人類の歴史とは、ここ2000年ほどの間にいかに劇的に進歩してきたかが、 恐ろしいほどの事実として、私みたいな歴史アレルギー症の人間も理解できました。 一方、数十億年の地球と生命の歴史を少しだけかじると、さらにここ1000年ほどの極 めて短期間、およそ瞬間といえるほどの短い間に、人類が何をしてきたかのかを知り 一種、愕然とするものを感じます。「おいおい、ほんまにエエんかいなぁ〜」てな感 じですね。人間はそれぞれみんな良い人であって、社会全体として幸せな方向をめざ して進歩してきたハズなのに、今の世界、そして日本。ちょっと『邪』が満ちてるっ て気もしますね。まあ、私たち個人は、それなりの生活を送り、それなりの人生をす ごせば、それなりに良いのでしょうけど、歴史とか地球などの観点から人間と社会を みつめなおすと、また、違った感慨のようなものが湧いてくるのも事実。ま、人それ ぞれに「幸せ」の尺度だって違うし、感じ方だって違うのはわかっているけど、幸せ をめざして走ってきた結果が不幸につながるという例を、歴史は多くの実例で示して くれます。この歳になってやっと「歴史」の重要性、そして「歴史を知ること」の重 要性を実感として知ったばかりの私です(^^; 「歴史は繰り返す」と言われはするの ですが、人類はその歴史を繰り返すことさえ出来ない崖っぷちの状況、つまり、極め てヤバい歴史的・生物学的局面に直面してしまっているじゃないだろうかと、ちらっ と思ったりする今日このごろだったりします。 ・では、皆様のより一層の快適な日本語作成環境の発展と御多幸を祈りつつ・・・(^^) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 『日本語文章作成に携わる全ての方々に、秀丸エディタを、ファインアジャスト!!』 「書きマクロ・シリーズ」のねがいです。 ────────────────────────────── 水銀水(Suigwinsui)/小田 明夫(HGD01603) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  そうそう、我が最愛の妻、しのサディア姫に"おはよう"のキッスを……(^^)