Vim在每一行结束时显示^M。

我如何用在Vim中打开的文件中的普通换行符替换它?


当前回答

我用BBEdit在MacVim中创建的一个文件显示了一堆^M行返回,而不是常规的返回。下面的字符串替换解决了这个问题:

:%s/\r/\r/g

这很有趣,因为我用相同的字符替换了换行符,但我认为Vim只需要获得一个新的\r才能正确显示。我很想知道为什么这是可行的。

其他回答

这个问题有很多其他的答案,但仍然,下面的最适合我,因为我需要一个命令行解决方案:

vim -u NONE -c 'e ++ff=dos' -c 'w ++ff=unix' -c q myfile

解释:

不加载任何.vimrc文件,打开myfile 执行:e++ ff=dos命令,在dos行结束时强制重新加载整个文件。 执行命令w++ ff=unix,使用unix行结束符写入文件 vim辞职

这些方法对我都不起作用,所以我尝试了这个,它起作用了:

类型:% s /

新闻CTRL-VCTRL-M

/ / g型

按回车键

因此,Vim中的整个命令应该看起来像:%s/^M//g

它的作用是:%s(查找并替换)/^M/(该符号)/(不含字符)g(全局)。

在vim中,查看文件格式- DOS或Unix:

:设置文件类型= unix

:设置文件格式=Unix

文件将被写回,没有回车符(CR, ^M)。

这招对我很管用:

设置文件格式为unix (\n行结束) 保存文件

在vim中:

:set ff=unix
:w

我用sed做了这个:

Sed -i -e 's/\r/\n/g'文件名