Vim regex to substitute/escape pipe characters
If you use very-magic
(use \v
) you'll have the Perl/pcre behaviour on most special characters (excl. the vim specifics):
:s#\v\|#\\|#g
vim has its own regex syntax. There is a comparison with PCRE in vim help doc (see :help perl-patterns
).
except for that, vim has no magic/magic/very magic mode. :h magic
to check the table.
by default, vim has magic
mode. if you want to make the :s
command in your question work, just active the very magic
:
:s/\v\|/\\|/g
Vim does the opposite of PCRE in this regard: |
is a literal pipe character, with \|
serving as the alternation operator. I couldn't find an appropriate escape sequence because the pipe character does not need to be escaped.
The following command works for the line in my example:
:. s%|%\\|%g