Case-preserving find and replace

Use Abolish to preserve the original case during substitution

One of the many useful features of Tim Pope’s Abolish plugin is the ability to preserve case when finding and replacing text.

We already know that text substitution is simple in Vim:

:%s/from_text/to_text/g

But what if we have varying case? Take for example, you’re renaming an entity in an application from Company to Organization. You might have a file with references to both company and Company. Instead of doing two substitutions, one for each, you can do them both at the same time with Abolish.

In fact, the only difference you need to remember is to use capital S instead of lowercase s:

:%S/company/organization/g

That’s it!

References to company will be replaced with organization, and Company with Organization. It will even handle camel case and other capitalization syntaxes.

Here’s another example where all the variations in case of Product was changed to Variant in one simple command. This can be extremely useful during refactoring or when copying boilerplate code, such as this simple Rails controller.

:%S/product/variant/g


Was this useful? Help us improve!

With your feedback, we can improve VimTricks. Click a link to vote: