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

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


当前回答

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

sed 's/\r//g'

其他回答

另外,还有称为dos2unix和unix2dos的开源实用程序可以做这件事。在linux系统上,它们可能是默认安装的;对于Windows系统,你可以从http://www.bastet.com/等网站下载。

这招对我很管用:

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

在vim中:

:set ff=unix
:w

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

:设置文件类型= unix

:设置文件格式=Unix

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

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

fromdos <filename.txt>

希望能有所帮助!

这个函数保存跳转列表

fun! Dos2unixFunction()
let _s=@/
let l = line(".")
let c = col(".")
try
    set ff=unix
    w!
    "%s/\%x0d$//e
catch /E32:/
    echo "Sorry, the file is not saved."
endtry
let @/=_s
call cursor(l, c)
endfun
com! Dos2Unix keepjumps call Dos2unixFunction()