- Mastering Vim
- Ruslan Osipov
- 233字
- 2025-04-04 15:36:10
Searching across files
Vim has two commands to help you search across files, :grep and :vimgrep:
- :grep uses system grep, and is a great tool if you're already familiar with how grep works
- :vimgrep is a part of Vim, and might be easier to use if you are not already familiar with grep
We'll focus on :vimgrep, since the grep tool is outside the scope of this book.
The syntax is as follows: :vimgrep <pattern> <path>. pattern could either be a string or a Vim-flavored regular expression. path will often be a wildcard; use ** as a path to search recursively (or **/*.py to restrict by filetype).
Let's try searching for a calc substring in our code base:
:vimgrep animal **/* .py
This will take us to the first match, displaying the number of matches at the bottom of the screen:
To navigate through the matches, use :cn or :cp. However, you might want to open a visual quickfix window by using :copen, as follows:
You can navigate the quickfix list with the j and k keys and jump to a match by pressing Enter. The quickfix window can be closed like any other window by typing :q or running Ctrl + w, q. You can read more about it in the Quickfix List section in Chapter 5, Build, Test, and Execute.