Fandom

Vim Tips Wiki

Alternate delimiters for the replace command

Redirected from VimTip406

1,624pages on
this wiki
Add New Page
Talk0 Share

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.

Tip 406 Printable Monobook Previous Next

created 2003 · complexity basic · author Raj Kiran · version 5.7


You don't need to use the slash character as the expression delimiter. Whatever character follows the :s is defined to be the delimiter character. You can use most non-alphanumeric characters (but not \, " or |). This is very handy when working with Unix filenames, as in the following example:

:s#/usr/local/#/opt/#

If you insist on using the normal slash, you have to escape each slash in the pattern with a backslash:

:s/\/usr\/local\//\/opt\//

As you can see, the escaping method is much less readable, so consider carefully your choice of delimiter character!

CommentsEdit

What a great tip. Very nice when trying to comment out Java or JS. e.g. :5,8 s#^#//# which looks much nicer than :5,8 s/^/\/\//

The percent ('%') character is also a frequently used alternative. Both percent and the octothorpe ("pound sign") ('#') characters have '/' embedded in them, to visually cue you why they are there as delimiters.

Other common choices are the hypen and underscore. (Protip: This tip can be applied in a lot of other places, especially when writing in a language (e.g. JavaScript, Perl).) SheeEttin 04:29, July 17, 2010 (UTC)

A comma delimiter works well and seems less cluttery. This is particularly handy for text, HTML/XML or Ruby.

Also on Fandom

Random Wiki