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

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


当前回答

或者不使用vim,只需使用此命令修复换行符

fromdos <filename.txt>

希望能有所帮助!

其他回答

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

: ff + + =

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

命令

:%s/<Ctrl-V><Ctrl-M>/\r/g

其中<Ctrl-V><Ctrl-M>表示输入Ctrl+V然后Ctrl+M。

解释

:%s

替换,% =所有行

<Ctrl-V><Ctrl-M>

^M个字符(Ctrl- v是一种Vim方式来书写Ctrl ^字符,Ctrl-M将M写在正则表达式之后,结果是^M个特殊字符)

/\r/

带新线(\r)

g

并且全局执行(而不仅仅是行上的第一个事件)。

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

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

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

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

:设置文件类型= unix

:设置文件格式=Unix

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

或者不使用vim,只需使用此命令修复换行符

fromdos <filename.txt>

希望能有所帮助!