开启辅助访问
 找回密码
 立即注册

Vim 中如何去掉 ^M 字符?

lounan321 回答数5 浏览数1226
windows环境下用Vim打开文件后出现好多^M字符,什么原因,如何去掉?
使用道具 举报
| 来自北京 用Deepseek满血版问问看
13775457471 | 来自广东
vim下    :%s/^M//g 或者 :1,$s/^M//g 均可
补充一点:
^M是使用 "CTRL-V CTRL-M" 而不是字面上的 ^M
用Deepseek满血版问问看
回复
使用道具 举报
yangdefang | 来自上海
用vim打开那些在win编辑过的文档的时候,我一般都先
:set ff=unix这样那个^M的问题也顺带解决了 // ..
回复
使用道具 举报
泥石流 | 来自北京
基于 DOS/Windows 的文本文件在每一行末尾有一个 CR(回车)和 LF(换行),而 UNIX 文本只有一个换行,即win每行结尾为\r\n,而linux只有一个\n
如果win下的文档上传到linux,每行的结尾都会出现一个^M,(^M是ctrl+v,ctrl+m)
如果是单个文档的话,可以用vi打开,执行 :%s/^M//g 来去掉^M,
但如里批量去除的话就不能用vi了,
方法1: 用dos2unix工具,
把win文档转换成linux下文档
命令:
find ./ -type f -print0 | xargs -0 dos2unix
如果想把linux下的文档转换成win下的:
find ./ -type f -print0 | xargs -0 unix2dos
方法2: 用sed命令
把win文档转换成linux下文档:
find ./ -type f print0 | xargs -0 sed -i 's/^M$//'

把linux下的文档转换成win下的
fild ./ -type f print0 | xargs -0 sed -i 's/$/^M/'
回复
使用道具 举报
skxzwj | 来自北京
删除行尾的^M:%s/\r//g
回复
使用道具 举报
nestofhk | 来自北京
google搜索"Vim 中如何去掉 ^M 字符"结果前两个
删除文件中的 ^M 字符
Windows & Linux 文件格式之迷 < VI下删除文本中的^M>
回复
使用道具 举报
快速回复
您需要登录后才可以回帖 登录 | 立即注册

当贝投影