Search code examples
filevimnewlinecarriage-returnlinefeed

Convert DOS/Windows line endings to Linux line endings in Vim


If I open files I created in Windows, the lines all end with ^M.
How do I delete these characters all at once?


Solution

  • dos2unix is a commandline utility that will do this.

    In Vim, :%s/^M//g will if you use Ctrl-v Ctrl-m to input the ^M (On Windows, use Ctrl-q Ctrl-m instead).

    Vim may not show the ^M characters if the file is loaded with a dos (Windows) file format. In this case you can :set ff=unix and then save the file with :w or :w! and Vim will reformat the file as it saves it for you.

    There is documentation on the fileformat setting, and the Vim wiki has a comprehensive page on line ending conversions.

    Alternately, if you move files back and forth a lot, you might not want to convert them, but rather to do :set ff=dos, so Vim will know it's a DOS file and use DOS conventions for line endings.