Reputation: 20179
One features I like with Visual Studio is the ability to search in open files only. For example, if I recently did changes to some files and I would like to trace those changes, I might search for a certain word, but only in those files to avoid getting a large list of necessary matches.
Is this possible with Vim?! What I am interested in is being able to open the files I have changed so for using:
gvim `git diff --name-only`
then search those files for what I want.
Upvotes: 6
Views: 1590
Reputation: 9133
A nice way to do that is to use vim's internal grep command (:vim
):
:vim /pattern/ `git diff --name-only`
:copen
This will open a small window (called quickfix
) with the search results and links to open the corresponding files (they don't have to be open).
Upvotes: 2
Reputation: 104020
If you want vim to open up all the files in their own buffers for files that match your diff, you could try this:
gvim $(grep -l pattern $(git diff --relative --name-only))
git diff --relative --name-only
shows the changed files in the index but with filenames relative to the current working directory.
grep -l pattern <list of files>
will report the filenames that contain a match on pattern
. (Note that the pattern just has to exist in the files, not in the git diff
output.)
POSIX $()
instead of backticks makes using nested commands possible.
Upvotes: 1