文字列検索(GREP)

NyanFi

文字列検索(GREP)

Grep コマンドを実行すると、カレント側ファイルリスト(ファイル名検索の結果リストやワークリストも可)のテキストファイルに対する 文字列検索(GREP) 画面が開きます。
xd2txlib.dll がインストールされていると、PDF、WORD、EXCEL、一太郎などの各種バイナリ文書も検索可能です。

上部のタブを切り替えることにより、文字列検索および文字列置換を行えます。

文字列検索

必用に応じて後述の項目を設定してください。
カレントで選択項目がある場合は、それらが検索対象となります。また非表示の項目は対象から外されます。
開始ボタンで検索がはじまります。検索を中断したい場合は中断ボタンまたはESCキーを押してください。
検索が終了すると、結果が下のリストに表示され、フォーカスが移ります。

結果リストでのキー操作
ファイラーで割り当てられているのと同じキーで、カーソル移動や、ファイルの閲覧(TextViewer / TextViewer_XW)、編集(FileEdit)が行えます。また OpenByAppOpenByWin コマンドも実行できます。
TextViewer_XW で別ウィンドウのビュアー開いている場合、TABキーで結果リストとの間を行き来できます。
オプション設定 - エディタ - テキストエディタ の「パラメータ(GREP用)」を設定しておけば、エディタで開いてその行位置に移動(タグジャンプ)できます。バイナリ文書では対応するエディタで開きます。
またENTERキーを押すと、結果リストから抜けて、そのファイルのある位置に移動します。
DELキーや Delete コマンドが割り当てられているキーを押すと、カーソル位置の項目が一時的に削除されます。これは、後述の絞り込みを行った場合と同様で、メニューの「絞り込みの解除」によって元に戻ります。
画面を閉じてファイラーに戻るには、ESCキーを押すか、ReturnList が割り当てられているキーを結果リストで押してください。
なお、2ストロークキー操作には対応していません。
検索結果は、再度検索を行うまで保持されています。画面を閉じても再度開けばまた見ることができます。その場合、対象ディレクトリ表示には、一覧にフォーカスがあれば前回検索時のパスが、そうでない場合はカレントパスが表示されます。
フィルタ
検索を行った後で、フィルタ 欄に文字を入力すると、結果リストを絞り込むことができます。
Migemo をチェックしていると、Migemo モードで絞り込みを行えます。
Migemo モードだと処理が重くなります。フィルタ欄には日本語も入力できるので、項目数が多い場合は通常モードにした方がよいでしょう。
AND/OR をチェックしていると、複数のキーワードを空白で区切って入力した場合にAND検索、"|" で区切るとOR検索で絞り込めます。区切りが混在しているその場合は、空白(AND)の方が | (OR)よりも優先順位が高くなります。
なお、大小文字は区別されません。
一覧にフォーカスがある場合、Ctrl+Fキーでフィルタ欄に、Ctrl+Sキーで検索文字列欄に移れます。
フィルタ欄からは、Ctrl+Lで結果リストに、Ctrl+F(or Ctrl+S)で検索文字列欄に移れます。またCtrl+Mで Migemo モードを切り替えられます。
なお、フィルタが適用される際に、キーによる項目の一時的な削除や、メニューによる絞り込みは解除されます。

メニュー
編集メニュー(または結果リストの右クリックメニュー)の「検索結果の絞り込み : 抽出」および「検索結果の絞り込み : 除外」で、結果リストを絞り込めます。キーワードは、空白で区切って複数指定可能。その場合、抽出ではいずれかを含むものが、除外ではいずれも含まないものが残ります。大小文字は区別されません。「絞り込みの解除」で、絞り込みを解除できます。「絞り込みを確定」で、絞り込みによって表示から除外された項目を結果リストから削除します。
検索結果の退避」で、現在表示されている結果リストの内容をバッファに退避できます。退避しておいた内容は、「検索結果の復帰」で結果リストに呼び戻せます。
ヒットしたカレントのファイルを選択」では、結果リストに表示されているファイルのうち、カレントのファイルリストにあるものを選択状態にします。この後でさらに検索を行った場合、選択されているファイルが検索対象となります。
結果リストのカーソル行にURLが含まれている場合、右クリックメニューの「URLを開く」でそれを開けます。
表示メニュー(または結果リストの右クリックメニュー)の「結果リストに項目番号を表示」をチェックすると、項目の通し番号が表示されます。また、「項目番号をファイル単位で表示」もチェックすると、項目番号をファイル単位の連番で表示します。ファイル内で複数行ヒットした場合、最初の行だけに番号が表示されます。
結果リストにサブディレクトリ名を表示」をチェックすると、ファイル名の前にカレント以下のサブディレクトリ名が表示されます(ワークリストの場合は除く)。
行頭のタブや空白を非表示」をチェックすると、結果リストで、行頭のタブや空白を除外して表示します(次行部分を含む)。
マッチ語が見えないとき前部分を省略」をチェックすると、結果リストの各行で、マッチした語が見えない場合、前部分を省略して見えるように表示します。
フィルタの語を強調表示」をチェックすると、結果リストをフィルタで絞り込んでいる場合、検索文字列の代わりにフィルタの語を強調表示します。
次行表示部分の明度を加減」をチェックすると、後述の 次行表示 をチェックしている場合に、次行部分の文字明度を加減してマッチ行と区別しやすくします。
なお、結果リストの内容をテキストエディタなどで利用したい場合、ファイルメニューの「検索結果に名前を付けて保存」でテキストファイルとして保存したり、編集メニュー(または結果リストの右クリックメニュー)の「検索結果をクリップボードにコピー」でコピーしたりしてください。
また後述の「拡張設定」により、結果をファイルやクリップボードに出力し、指定アプリケーションを起動することも可能です。


検索文字列
検索文字列を指定します。半角または全角空白で区切って複数の語を指定することも可能です(AND または OR 検索)。
先頭や末尾の半角空白は無視されます。このような場合、正規表現では \x20 を用いてください。
正規表現でない場合、\s は半角空白、\t はタブ文字とみなされます。
マスク
検索するファイルのマスクを指定します。マスクは ; (セミコロン)で区切って複数指定できます。
なお、GrepSetMask 補助コマンドや、.nyanfi ファイルによる設定も可能です。
: *.txt;*.cpp;*.c;*.h
サブディレクトリ
サブディレクトリも検索対象とします。ディレクトリの深さも指定できます(カレントは0、サブディレクトリが1、その下が2…)。
なおカレントでディレクトリを選択している場合、チェックしていなくても、その中のファイル(深さ1)は対象となります。
除外ディレクトリ
検索から除外するディレクトリのマスクを指定します。マスクは ; (セミコロン)で区切って複数指定できます。
なおカレントで選択されているディレクトリは除外されません。
: __*;backup;test;temp
正規表現
検索に正規表現を用います。
入力内容が正しくない場合、背景色が変わり(オプション設定 - フォント・配色 「不正な入力項目の背景色」)、検索を開始できません。
なお検索文字列欄の右クリックメニューから、正規表現を参照できます。
AND
検索語を複数指定している場合に、AND検索を行います。チェックを外すとOR検索になります。
大小区別
大文字・小文字を区別して検索します。
1マッチ
そのファイルで一箇所マッチしたらそれ以降の検索を止め、次のファイルに移ります。
タグ除外
ファイルがHTML文書の場合、HTMLタグ部分を除外して検索します。
HTML文書以外のファイルに対しては機能しません。
次行表示
結果リストに、マッチした行以降の3行(空行は除く)を改行マークで区切って表示します。
検索終了後に変更した場合にも、表示が切り替わります。


拡張設定ボタンを押すと、拡張設定ダイアログが開きます(二重起動した NyanFi では開けません)。
設定を行うことにより、検索終了後に、ファイルやクリップボードに結果リストを出力し、指定アプリケーションを起動したりできます。

出力方法
検索終了時の結果リストの出力方法を設定します。
出力先
出力先を指定します。「無し」を選んだ場合は、検索終了時に何も行いません。
出力ファイル
出力先で「ファイル」を選んだ場合、ファイル名を指定してください。ドライブ指定がない場合 NyanFi ディレクトリからの相対パスとみなされます。ファイルはUnicode(UTF-8)で保存されます。
既存ファイルがあれば追加 をチェックすると、既存の出力ファイルに結果を追加していきます。
起動アプリケーション
結果出力後に、外部アプリケーションを起動したい場合に設定してください。
実行ファイル名には以下の書式文字列が使えます。
 $X NyanFi の起動パス(末尾の \ は無し)
 $D NyanFi の起動ドライブ(末尾の \ は無し、例: "D:")
 $$ $ そのもの
また "%変数名%" という書式で環境変数を用いることも可能です。
出力ファイルを渡したい場合は、パラメータに書式文字列 $F を指定してください。また既存ファイルに追加する場合、$L (行番号) も指定すると、追加した先頭位置に移動できます。

出力形式
結果出力の形式を設定します。
なおこの設定は、ファイルメニューの「検索結果に名前を付けて保存」や、編集メニューの「検索結果をクリップボードにコピー」の際にも用いられます。
ファイル情報の書式
ファイル名や行番号の書式を指定します。
書式には以下の書式文字列を使えます。空欄の場合は "$F $L:" とみなされます。
 $F : パス付ファイル名
 $L : 行番号
 \t : タブ
 \n : 改行
 \s : 空白 (" " でよいのですが、わかりやするために)
 \\ : \ そのもの
マッチ語前後の挿入文字列
マッチした語の前後に文字列を挿入できます。書式文字列は \t\n\s および \\を使えます。
行頭のタブや空白を削除
マッチ行以降で、行頭にタブや空白があったら削除します。
タブを空白1文字に置換
マッチ行以降で、タブを空白1文字に置換します。ただし、削除された行頭のタブは置換されません。
改行を文字列に置換
マッチ行以降の改行(最後尾を除く)を、指定した文字列に置換します。