1. HOME»
  2. ミニハウツー»
  3. ソフトウェア»
  4. テキストエディタ»
  5. Vim»
  6. 【Vim】分割した複数のファイルから、文字列を検索する方法

【Vim】分割した複数のファイルから、文字列を検索する方法

プログラミングをしていると、ファイルを分割して、機能ごとに分けて作ることが多いと思います。
しかし、その複数のファイルのなかから、特定の文字列を検索したいこともよくあります。

そこで今回は、Vimを使って分割した複数のファイルから特定の文字列を検索する方法を紹介したいと思います。

目次
  1. :vimgrepを使って文字列を検索する方法
  2. 検索したい文字列がある場所へカーソルを移動する方法
  3. 検索したい文字列がある場所へすぐに移動できるようにカスタマイズ
  4. 検索結果の一覧を表示
  5. まとめ

:vimgrepを使って文字列を検索する方法

:vimgrepを使って文字列を検索する方法です。

:vimgrep 検索したい文字列 検索したい場所

今開いているファイルの場所以下のファイルすべてから「wp」という文字列を検索したい場合は、このようになります。

:vimgrep wp **/*

vimgrepvimというふうに省略することもできます。

:vim wp **/*

これでファイルをまたいで検索をすることができます。

検索したい文字列がある場所へカーソルを移動する方法

そして、検索したい文字列に出てくる場所へカーソルを移動させるには、以下のコマンドを使います。

:cnext

また、にカーソルを移動させるにはこのようにします。

:cNext

もしくは

:cprevious

しかし、これを毎回入力するのは大変です。以下でその解決方法を紹介します。

検索したい文字列がある場所へすぐに移動できるようにカスタマイズ

上記のコマンドをいちいち入力していては大変なので、Vimの設定ファイル(.vimrcなど)に、以下を入力しましょう。

nnoremap <C-n> :cnext<CR>
nnoremap <C-p> :cprevious<CR>

これで、次の場所に行きたいときはcontrol + nを、前の場所に行きたいときはcontrol + pで、カーソルを移動できるようになります。

検索結果の一覧を表示

検索するときに、後ろに| cwをつけることによって、検索結果の一覧を表示することができます。

:vim wp **/* | cw

まとめ

プログラミングでは、ほとんどの場合、ファイルを分割して行ないます。
そうなるとファイルをまたいだ検索をしたくなります。

vimgrepを使うことで、複数のファイルから、特定の文字列を検索することができます。

参考になれば幸いです。

オリジナルゲーム.com