Search and replace in VIM results in trailing characters Search and replace in VIM results in trailing characters linux linux

Search and replace in VIM results in trailing characters


The "trailing characters" are in your command, not your document.

Vim thinks that you finished the command at Article</, then considers h2>/gi as the third argument of the substitute command. But those characters aren't all valid for the third argument, so it gives you the error.

To solve this, you need to escape the / character in your substitute.

%s/Article/<h2>Article<\/h2>/gi


Also, if you often need to use literal forward slashes in your regexs (XML/HTML/UNIX file paths) and don't want to worry about escaping every instance, you can use a different delimiter. For example, using ! instead of /:

%s!Article!<h2>Article</h2>!gi

I am lazy and this is usually easier than manually escaping slashes.