gVim showing carriage return (^M) even when file mode is explicitly DOS
I'm using gVim on Windows. My code shows ^M
characters at the end of lines. I used :set ff=dos
to no avail. The ^M
characters remain for existing lines, but don't show up for newlines I enter. I've switched modes to mac (shows ^J
characters) and unix (also shows ^M
characters) and back to dos. Has anyone else seen this?
Solution 1:
This happens when you have a mixture of Windows line endings and Unix ones. If you have 100 lines, 99 are \r\n and one is \n, you'll see 99 ^M characters. The fix is to find that one line and replace it. Or run dos2unix on the file. You can replace the Windows line endings with:
:%s/\r\(\n\)/\1/g
Solution 2:
You can also run:
:e ++ff=dos
To remove the ^M
: See File format – Vim Tips Wiki.