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

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


当前回答

sed s/^M//g file1.txt > file2.txt

其中^M是通过同时按下3个键,ctrl + v + M

其他回答

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

:%s/\r/\r/g

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

这是唯一对我有效的方法:

: ff + + =

可以在http://vim.wikia.com/wiki/File_format找到它

在windows下,尝试:%s/<C-Q><C-M>/g

^M给出不需要的换行符。要处理这个问题,我们可以使用sed命令,如下所示:

sed 's/\r//g'

要在MacOS上使用sed,请执行以下操作:

sed -i.bak $'s/\r//' <filename>

解释:这里的$'STRING'语法属于bash shell。mac电脑不把\r当作特殊字符。通过在$ "中引用命令字符串,你告诉shell将\r替换为ANSI-C标准中指定的实际\r字符。