views:

147

answers:

2

so

1GvG:s/..../g

can replace over an entire buffer

However, suppose I have multiple vim buffers loaded, and I want to do a :s over all the buffers that are writable; is there a way to do this in vim?

+4  A: 

Take a look at bufdo. There's also windo and tabdo. Keep in mind that per default Vim doesn't autowrite so for search/replace commands across buffer you need to turn on autowrite.

Brian Rasmussen
+3  A: 

Since I can't leave comments, I'll be repeating what Brian said and adding in my 2 cents.

I believe the command you're looking for is:

:bufdo :%s/..../g | :w

Note: This will write each file after the changes are made, so make sure you're ready for this.

If autowrite is on, you should be able to remove the "| :w" at the end of the command.

Curt Nelson
Well, at least in my vim (7.2, Ubuntu) it's enough to leave the `| :w` out of the picture if you don't want to write on change.
Adriano Varoli Piazza