QFixGrep - 使い方と操作一覧
プレビュー&絞り込み検索付きvim/gvim用日本語対応grepプラグインの使い方 |
| ,e | Grep | 通常のgrep |
| ,f | FGrep | 正規表現を使わないで検索 |
| ,v | VGrep Vimgrep |
vimgrepでgrep |
| ,b | BGrep | 現在開いている全てのバッファのみを対象にgrep (無名バッファは検索できない) |
| ,E | Grepadd | 通常のgrep 既にQuickfixウィンドウに登録されている結果は削除しない。 |
| ,F | FGrepadd | 正規表現を使わないで検索 既にQuickfixウィンドウに登録されている結果は削除しない。 |
| ,V | VGrepadd Vimgrepadd |
vimgrepでgrep 既にQuickfixウィンドウに登録されている結果は削除しない。 |
| ,B | BGrepadd | 現在開いている全てのバッファのみを対象にgrep (無名バッファは検索できない) 既にQuickfixウィンドウに登録されている結果は削除しない。 |
キーマップリーダーは以下のオプションで変更できます。
デフォルトでは g,e のように3ストロークですが、2ストロークコマンドにしたい場合は MyGrep_KeyB = '' のように空文字に設定して下さい。
"GrepコマンドのキーマップQuickfixウィンドウのON/OFFは<C-w>, かToggleQFixWinを使用してください。
let MyGrep_Key = 'g'
"Grepコマンドの2ストローク目キーマップ
let MyGrep_KeyB = ','
「QuickfixウィンドウのON/OFF」
Quickfixウィンドウ上の操作は「拡張Quickfixウィンドウの操作」にまとめてあります。
検索するファイルの種類を指定する際は、*.vim *.txt のように 複数の種類を指定可能です。
grep後、自動的にQuickfixウィンドウが開き、検索レジスタにはgrepした文字列が登録されます。
検索するファイルを指定する際、**/*.vimのように **/を付けて指定すると再帰的にgrepを行います。
コマンドモードから実行する
コマンドモードからもGrepを実行できます。:Grepは grepprgで指定されているコマンドが実行されます。
このため :grepの完全上位コマンドとして扱え、使用できるオプションも :grepと全く同じになります。
grepprg に外部grepを指定している場合、再帰検索には -r など外部grepのオプションを指定してください。
:Grep -r searchword *.vim
:Vimgrepは grepprg にかかわらずvimgrepと同等のコマンドになります。また:Grep! のように ! を指定すると、開いているファイルと同じディレクトリを基準にgrepします。
したがって autochdir やプラグインでカレントディレクトリをファイルと同じディレクトリに設定している場合に違いはありません。
外部grep使用時のファイルエンコード
外部grepを使用する場合、検索対象ファイルの文字エンコードは 現在開いているファイルと同じと仮定して実行されます。よって異なる文字エンコードのファイルは検索されません。
Vimgrepならファイルエンコードは自動判別されます。
拡張Quickfixウィンドウの操作
Grepコマンドや g,e 等で検索した後、自動的にQuickfixウィンドウが開きます。
コマンドラインから直接vimgrepを実行した場合は手動でQuickfixウィンドウを開いて下さい。
<C-w>, や ToggleQFixWinを使用すると前回のカーソル位置、ソート結果なども保存されるので、<C-w>, かToggleQFixWinを使用してください。
QuickfixウィンドウのON/OFFには一応copen,cclose等のQuickfixコマンドも一応使えます。
| <C-w>, | Quickfixウィンドウのオープン/クローズ |
| <C-w>. | Quickfixウィンドウへ移動 多数のウィンドウを開いていても、一度でQuickfixウィンドウに移動出来ます。 5<C-w>. のようにカウント指定すると指定サイズの高さに変更されます。 Quickfixウィンドウ上ではウィンドウ高さをデフォルトに戻します。 |
| q | Quickfixウィンドウのクローズ |
| <CR> |
ファイルを開く。 3<CR>のように番号を指定すると対応する行のファイルを開く。 |
| <S-CR> | <CR>とは逆の画面分割方法でファイルを開く |
| <C-CR> | ファイルを開いてから、指定行に移動しないで最後の編集場所へ移動 |
| s | 文字列を指定して絞り込み。 <C-r>/で検索文字列が貼り付け可能。 <C-u>、<C-w>、ヒストリも有効。 画面に表示されている部分(各行1kバイト)のみが対象になる。 |
| u | 絞り込みのアンドゥ |
| <C-r> | 絞り込みのリドゥ |
| U | 絞り込みを全て元に戻す |
| J | ジャンプ後にQuickfixウィンドウを閉じる/閉じないをトグル |
| i | プレビュー表示ON/OFF |
| I | ファイルタイプのハイライト表示ON/OFF。 環境やファイルサイズによっては重くなるので、その場合はOFFにしてください。 |
| S | 更新時間順、名前順などのソート切替。 絞り込みは初期状態になる。 |
| <C-q> |
Modifiableモード ON/OFF。 Quickfixウィンドウを書き換え可能にする。 |
| A <C-o> |
「Quickfixウィンドウの保存と読込」 現在のQuickfixウィンドウを保存する。 3Aのようにカウント指定すると、ファイル名に指定カウントを付加して読み込む。 ~/.qfgrep.txt → ~/.qfgrep3.txt |
| O <C-i> |
「Quickfixウィンドウの保存と読込」 保存されているQuickfixウィンドウを読み込む。 3Aのようにカウント指定すると、ファイル名に指定カウントを付加して保存する。 ~/.qfgrep.txt → ~/.qfgrep3.txt |
グローバルなQuickfixウィンドウの読込コマンド
「Quickfixウィンドウの保存と読込」で保存したQuickfixウィンドウの内容を読み込む事が出来ます。デフォルトのキーマップは g,k になります。
| ,k | 「Quickfixウィンドウの保存と読込」 3g,k のようにカウント指定すると、ファイル名に指定カウントを付加して読み込む。 ~/.qfgrep.txt → ~/.qfgrep3.txt |
QuickfixウィンドウのON/OFF
| <C-w>, |
QuickfixウィンドウのON/OFF |
| <C-w>. |
Quickfixウィンドウに移動する。 多数のウィンドウを開いていても、一度でQuickfixウィンドウに移動出来ます。 5<C-w>. のようにカウント指定すると指定サイズの高さに変更されます。 Quickfixウィンドウ上で実行すると、高さがデフォルトに戻ります。 |
| q | Quickfixウィンドウを閉じる |
<C-w>, や ToggleQFixWinを使用すると前回のカーソル位置、ソート結果なども保存されます。
QuickfixウィンドウのON/OFFには一応copen,cclose等のQuickfixコマンドが使えますが、できるだけ上記コマンドを使用して下さい。
オプションと設定
ToggleQFixWinでQuickfixウィンドウのON/OFFが出来ます。| ToggleQFixWin |
QuickfixウィンドウをON/OFF |
| OpenQFixWin | QuickfixウィンドウをON |
| CloseQFixWin | QuickfixウィンドウをOFF |
| MoveToQFixWin | Quickfixウィンドウへ移動 |
| ResizeQFixWIn | Quickfixウィンドウを元のサイズに戻す |
.vimrc設定例
"QuickfixウィンドウをON/OFF
"この設定例ではgsが使用できなくなります。好みに応じて変更して下さい。
nnoremap <silent> gs :ToggleQFixWin<CR>
ファイルを画面分割して開くことが出来ます。
<CR>と<S-CR>では逆の分割法で開きます。
"ファイルを画面分割して開く/開かない。またファイルを分割で開いたときの最小ウィンドウ高さを指定可能です。
let QFix_FileOpenMode = 0
0なら全てのウィンドウサイズを同じ高さにします(デフォルト)
ウィンドウを水平分割するタイプのプラグインを使用するなら、高さを指定すると相性が改善される事があります。
"ファイルを分割して開いたときの最小ウィンドウ高さ指定
let QFix_WindowHeightMin = 10
絞り込み検索
Quickfixウィンドウでは絞り込みが出来ます。sを押すと入力モードになるので、何か適当な文字列(たとえばファイル名)を入れてみてください。
入力した文字列で絞り込まれます。
元に戻したい場合はuでアンドゥ出来ます。
最初の状態に戻すのはUです。
注意
Quickfixウィンドウに絞り込みを行っていて画面に表示されている時にvimを終了しようとすると、「変更を"無題"に保存しますか?」
というメッセージが出ることがあります。
これは絞り込み中のQuickfixバッファは編集中と見なされるためです。
'n'を選ぶか、Quickfixウィンドウを閉じてから終了するか、'U'コマンドで絞り込みを初期状態に戻してから終了するかのいずれかを選択します。
また基本的に画面がおかしいと思ったら、アンドゥ(特にU)してください。
例えば絞り込み中に拡張Quickfixに対応していないgrep等(helpgrep等)が実行されると、画面は絞り込み中の物が表示され続けることがあります。
ソートの種類
Quickfixウィンドウで S を押すとソートの種類を聞いてきます。
m,n,t のいずれかを入力します。
Sort type? (r:reverse)+(m:mtime, n:name, t:text) :
ソートの種類
| m |
ファイルの更新時間 (mtime) |
| n | ファイル名 (name) |
| t |
表示されているテキスト内容 (text) |
逆順にしたい場合は rt のように、最初に r を付けて下さい。
Modifiableモード
<C-q>でQuickfixウィンドウを書き換え可能にして、通常のバッファと同じ編集作業が出来ます。基本的に行単位の編集でないと意味がありませんが、自分で作成したソート、編集などが使用できます。
例えば、絞り込み検索とは逆に「指定した単語を含まない行を抽出したい」場合は、<C-q>を押してから次の様にします。
:g/fuga/dこの例では fuga を含む行が削除されます。
ファイル名部分を編集するとジャンプできなくなるので注意して下さい。
おかしくなったら U や u で全て元に戻せます。
Quickfixウィンドウの保存と読込
Quickfixウィンドウの内容を保存したり、読み込んだりする事が出来ます。保存、読込の際にカウント指定すると、ファイル名に指定カウントを付加したファイル名で処理します。
現在の結果を保存して一時的に別の検索をしたい場合や、複数の結果を保存したい場合に使用してください。
Quickfix上のコマンド
| A <C-o> |
現在のQuickfixウィンドウを保存する。 3Aのようにカウント指定すると、ファイル名に指定カウントを付加して保存する。 ~/.qfgrep.txt → ~/.qfgrep3.txt |
| O <C-i> |
保存されているQuickfixウィンドウを読み込む。 3Oのようにカウント指定すると、ファイル名に指定カウントを付加して読み込む。 ~/.qfgrep.txt → ~/.qfgrep3.txt |
何かgrepしてからQuickfixウィンドウ上で A を押すと現在のgrep結果が保存されます。
その後に別のgrepを行ってから O を押すと、保存した検索結果が表示されます。
グローバルな「Quickfixウィンドウ読み込み」のキーマップは g,k になります。
| ,k | 「Quickfixウィンドウの保存と読込」 3g,k のようにカウント指定すると、ファイル名に指定カウントを付加して読み込む。 ~/.qfgrep.txt → ~/.qfgrep3.txt |
保存するファイルはMyGrep_Resultfileで指定します。
"現在登録されているGrep結果を保存するファイル保存、読込の際にカウント指定すると、ファイル名に指定カウントを付加したファイル名で処理します。
let MyGrep_Resultfile = '~/.qfgrep.txt'
現在の結果を保存して一時的に別の検索をしたい場合や、複数の結果を保存したい場合に使用してください。
たとえば3Oのようにカウントに 3 を指定すると
~/.qfgrep.txt → ~/.qfgrep3.txt
になります。
コマンドで読込、書込も出来ます。
ファイル名を指定しないと、MyGrep_Resultfileが使用されます。
必要なら適当なキーにマップするなどして使用してください。
| 保存されているQuickfixウィンドウを読み込む | :MyGrepWriteResult ファイル名 |
| 現在のQuickfixウィンドウを保存する | :MyGrepReadResult ファイル名 |
以下のように設定すると<F2>を押すと 2<C-o>で保存した検索結果を表示する事が出来ます。
"現在登録されているGrep結果を保存するファイル
nnoremap <silent> <F2> :MyGrepReadResult ~/.qfixgrep2.txt<CR>
次のページ「QFixGrep - オプション」へ
QFixGrep - vim用grepヘルパー | QFixGrep - インストール | QFixGrep - 使い方と操作一覧 | QFixGrep - オプション | Shift_JIS(cp932)の「ダメ文字」 | トラブルシューティング
