Vim在每一行结束时显示^M。
我如何用在Vim中打开的文件中的普通换行符替换它?
Vim在每一行结束时显示^M。
我如何用在Vim中打开的文件中的普通换行符替换它?
当前回答
我用sed做了这个:
Sed -i -e 's/\r/\n/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
并且全局执行(而不仅仅是行上的第一个事件)。
在VIM命令模式下:
:e ++ff=dos | setl ff=unix | up
e++ ff=dos -强制打开dos格式的文件。
Setl ff=unix -将文件转换为unix格式。
上保存文件时,仅当已修改。
在Linux和Mac OS上,以下工作,
:%s/^V^M/^V^M/g
其中^V^M意味着输入Ctrl+V,然后Ctrl+M。
注意:在Windows上,你可能想使用^Q而不是^V,因为默认情况下^V被映射为粘贴文本。
这招对我很管用:
设置文件格式为unix (\n行结束) 保存文件
在vim中:
:set ff=unix
:w
^M是由Ctrl+V和M检索的
s/^M//g