Chris Snow
Chris Snow

Reputation: 24616

What is the meaning of the % character in vim?

The vim wikia page provides the following description for search and replace:

:%s/foo/bar/g

Find each occurrence of 'foo' (in all lines), and replace it with 'bar'.

:s/foo/bar/g

Find each occurrence of 'foo' (in the current line only), and replace it with 'bar'.

...

I can see that the the % character causes the whole buffer to be searched.

What is the meaning of the % character in vim? Is it a variable that refers to the current buffer?

Upvotes: 1

Views: 101

Answers (1)

Ingo Karkat
Ingo Karkat

Reputation: 172718

Learn how to look up commands and navigate the built-in :help; it is comprehensive and offers many tips. You won't learn Vim as fast as other editors, but if you commit to continuous learning, it'll prove a very powerful and efficient editor.

Here's how you would have found the information:

Look up the command: :help :substitute

  :[range]s[ubstitute]/{pattern}/{string}/[flags] [count]

Ah, the stuff in front is called range. Further down, there's a link to it:

      Also see |cmdline-ranges|.

(:help [range] would have also taken you to it.) And that explains the meaning of %, as well as the help keyword for direct access.

%       equal to 1,$ (the entire file)        *:%*

Upvotes: 3

Related Questions