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

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


当前回答

这个函数保存跳转列表

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

其他回答

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

s/^M//g

在Linux和Mac OS上,以下工作,

:%s/^V^M/^V^M/g

其中^V^M意味着输入Ctrl+V,然后Ctrl+M。

注意:在Windows上,你可能想使用^Q而不是^V,因为默认情况下^V被映射为粘贴文本。

使用以下命令之一:

:%s/\r//g

Or

:%s/\r\(\n\)/\1/g

命令

:%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

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

只需删除二进制文件在你的。vimrc!