[lug] Little vim trick, editing multiple files
andrewdied at gmail.com
Wed Nov 30 15:35:18 MST 2005
I needed to edit a bunch of files, changing /old/path to /new/path. I
knew there was a way to do it in vim, but couldn't remember offhand.
Since it's cool I thought I'd share with the group.
1) Startup vim, editing the files you need.
$ vim *.xml
2) Check out the args list. This is the list of files you're going to edit.
3) Make the substitution across all files.
:argdo %s:/old/path:/new/path:ge | update
a) argdo will run the command or commands after it on every file in args.
b) by using : as the separator I can use slashes without escaping.
c) "g", of course, substitutes on every occurrence in a line, not just
the first one. "e" ignores the error where that match isn't in a
d) | separates multiple commands.
e) update writes the file if there was a change.
I hope that's helpful.
More information about the LUG