vim 正则表达式 %s/\n/\n/g 结果不一样了


vim 里面使用正则表达式,替换成  \n 的时候,确成了  ^@ 

这个跟vim内部的编码有关。

要想使用正常,只能是


:set ff=unix

:%s/\n/\r/g


这样是正常的。

下面这段内容为摘抄。 若想知道原因请仔细翻阅下面的内容

------------------------------------------------------------------------------------------------------------------------------------------

windows/dos  unix  mac
换行符     CRLF  LF    CR
在SHELL中的表示  \r\n    \n  \r
16进制符     0d0a    0a   0d
:%s/\r/\r/g 这个命令中,第一个\r与第二个\r的意义是可能不相同的; 第一个\r代表 0d ,也就是CR; 而第二个\r,是VIM自行根据fileformat内置变量判断决定的,见下表:
           \n    \r
:set ff=dos         00    0d0a(\n\r)
:set ff=unix        00    0a(\n)
:set ff=mac         00    0d(\r)
OK,现在就可以解释上面的 :%s/\r/\r/g 为什么会把 0d变成0a了。

另外还有两个小Tip:

根据fileformat的不同,vim会自动在文件的最未尾添加一个换行符,除非启动时vim -b xxx , 同时还要开启 set noeol才行。
任何情形下,VIM中的\n都是00, 在VIM中会显示为@

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值