(Nerd) ^M Removing control characters using VIM
hat tip Matthew Turland
Have you ever opened up a file using VI and found the following?
<?php echo '<html>'^M echo '<head>'^M echo '</head>'^M echo '<body>'^M ... |
That stupid control character from some other horrid text editor is trailing every single line. And you are annoyed enough to Google for an answer. ^M
Now, hopefully you are aware of the powerful regex tools built right into VI. But in this case, the fix is pretty simple, and we won’t have to craft any regFu. After you open your file using VI, we will then use the search/replace functionality. And we will eventually end up with a line that looks like this.
:%s/^M//g |
But there is a gotcha to this solution, so you may need to read on to find out more. And before proceeding, press esc to make sure you are not in insert mode.
First type the following.
Shift + : |
Which should just print the colon at the bottom of your screen.
: |
Then type this exactly how it looks.
%s/ |
Now we need to type the control character. You may be thinking “Jared, I will just hit shift + 6 and get that character onto my screen in no time.”. And you are more than welcome to do that, but you would be wrong.
You will need to press the following keys.
Control + V |
Which will get you this printed out.
:%s/^ |
Then type the following.
Control + M |
Which should have you ending up with this.
:%s/^M |
At this point you can type the rest of the characters exactly how they look.
//g |
Which leaves you with a finished line that looks like so.
:%s/^M//g |
Press enter, and you will now replace the ^M character with nothing.
Part 2(kinda): Small search and replace example.
This would replace Dog with Cat.
:%s/Dog/Cat/g |
Cat with Mouse.
:%s/Cat/Mouse/g |
Mouse with Trap.
:%s/Mouse/Trap/g |
So our line to replace the ^M character is literally saying “Replace the ^M character with nothing”.

try :%s/\r//
\r = carriage return
^M = carriage return
SpX, thanks for the tip. Though a lot of people don’t understand that ^M, is not Shift + 6 + M.
Hopefully this tutorial illustrates the fact that ^M is actually a single character. And when the user sees other characters on their screen that look similar, a light bulb hopefully goes off.
-thanks again
Thanks! I somehow did this one time correctly and could not remember how I did it again. Perfect Answer.