substitute command is empty: "//". Thus it replaces
with nothing, effectively deleting the matched white space.
Another wasteful use of spaces is placing them before a tab. Often these can
be deleted without changing the amount of white space. But not always!
Therefore, you can best do this manually. Use this search command: >
/
You cannot see it, but there is a space before a tab in this command. Thus
it's "/<Space><Tab>". Now use "x" to delete the space and check that the
amount of white space doesn't change. You might have to insert a tab if it
does change. Type "n" to find the next match. Repeat this until no more
matches can be found.
==============================================================================
*12.8* Find where a word is used
If you are a Unix user, you can use a combination of Vim and the grep command
to edit all the files that contain a given word. This is extremely useful if
you are working on a program and want to view or edit all the files that
contain a specific variable.
For example, suppose you want to edit all the C program files that contain
the word "frame_counter". To do this you use the command: >
vim `grep -l frame_counter *.c`
Let's look at this command in detail. The grep command searches through a set
of files for a given word. Because the -l argument is specified, the command
will only list the files containing the word and not print the matching lines.
The word it is searching for is "frame_counter". Actually, this can be any
regular expression. (Note: What grep uses for regular expressions is not
exactly the same as what Vim uses.)
The entire command is enclosed in backticks (`). This tells the Unix shell
to run this command and pretend that the results were typed on the command
line. So what happens is that the grep command is run and produces a list of
files, these files are put on the Vim command line. This results in Vim
editing the file list that is the output of grep. You can then use commands
like ":next" and ":first" to browse through the files.
FINDING EACH LINE
The above command only finds the files in which the word is found. You still
have to find the word within the files.
Vim has a built-in command that you can use to search a set of files for a
given string. If you want to find all occurrences of "error_string" in all C
program files, for example, enter the following command: >
:grep error_string *.c
This causes Vim to search for the string "error_string" in all the specified
files (`*.c`). The editor will now open the first file where a match is found
and position the cursor on the first matching line. To go to the next
matching line (no matter in what file it is), use the ":cnext" command. To go
to the previous match, use the ":cprev" command. Use ":clist" to see all the
matches and where they are.
The ":grep" command uses the external commands grep (on Unix) or findstr
(on Windows). You can change this by setting the option 'grepprg'.
==============================================================================
Next chapter: |usr_20.txt| Typing command-line commands quickly
Copyright: see |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl: