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

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


当前回答

:g/^M/s// /g

如果你用Shift+6 Caps+M输入^M,它不会接受。

你需要输入ctrl+v ctrl+m。

其他回答

我用sed做了这个:

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

首先,使用:set ff?来确定文件的格式。

我猜可能是unix,那么问题是你的文件是用fileformat=dos创建的,在行末添加“^M^J”,但用flieformat=unix读取,只从行末删除“^J”,留下“^M”。

只需在Vim命令行中输入:e++ ff=dos即可将文件格式从unix更改为dos。这应该能解决问题。如果不是,:%s/\r//g会帮助你。

:g/^M/s// /g

如果你用Shift+6 Caps+M输入^M,它不会接受。

你需要输入ctrl+v ctrl+m。

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

类型:% s /

新闻CTRL-VCTRL-M

/ / g型

按回车键

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

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

这个函数保存跳转列表

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()