Wikia

Vim Tips Wiki

Alternate delimiters for the replace command

Talk0
1,610pages on
this wiki
Revision as of 14:36, November 8, 2011 by Chrisbra (Talk | contribs)

Tip 406 Printable Monobook Previous Next

created January 17, 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!

Comments

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.

Advertisement | Your ad here

Around Wikia's network

Random Wiki