vim: search replace over all writable buffers

2019-02-17 07:15发布

问题:

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?

回答1:

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.



回答2:

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.



回答3:

Greplace has a feature that supports this. There's also a pathogen ready version on github.



标签: vim replace