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

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


当前回答

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

:%s/\r/\r/g

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

其他回答

在串行控制台上,所有的vi和sed解决方案都不适合我。我不得不:

cat inputfilename | tr -d '\r' > outputfilename

这些建议对我都不起作用,因为在使用vim和eclipse时,我设法获得了^M换行符。我怀疑我遇到了一个外部案件但为了能帮助到其他人。

:%s/.$//g

这解决了我的问题

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

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 / \ r / / g 这招对我很管用。

它的作用是清除所有行的末尾,去掉^M,就是这样。

^M是由Ctrl+V和M检索的

s/^M//g