我遇到DOS新行(0d 0a
)的问题,我尝试在vim
中替换它。我相信之前已经做了几次,但现在我真的被卡住了,因为vim
不想看到这个角色:
当我尝试按CTRL
V
和CTRL
M
来运行:%s/^M//g
时,我会看到错误:
E486: Pattern not found: ^M
即使我尝试用:%s/\%x0d//g
的十六进制代码替换它,我也会看到错误:
E486: Pattern not found: \%x0d
:%s/\%x61//g
当我尝试:%s/\n/\r/g
时,没有任何反应
当我尝试使用:%s/\n/XXX/g
然后:%s/XXX//g
分两步删除它时,它会消失。但是,如果我在第二步使用:%s/XXX/\r/g
,则vim会将0d 0a
插回而不是预期的0a
因此,问题:有没有办法将所有新行转换为0a
中的vim
?为什么十六进制替换不起作用?
答案 0 :(得分:1)
请参阅:help 'fileformat'
。
:set ff=unix
:w
应该这样做。
顺便说一句,这是匹配换行符:
:%s/\n/\r/
但它用换行符替换换行符,当你 写缓冲区vim将使用任何结束的行 由' fileformat'确定。