标 题: 求替换10进制变16进制
发信站: 水木社区 (Thu Apr 17 17:06:45 2008), 站内
文本有很多行,格式类似为
160,161,162,162
163,164,165
……
要变成16进制
格式为
/xa0,/xa1,/xa2,/xa2
/xa3,/xa4,/xa5
……
第一个大侠的回复
标 题: Re: 求替换10进制变16进制
发信站: 水木社区 (Thu Apr 17 20:06:02 2008), 站内
我只能两次替换才能完成,第一次 160->0xa0,第二次0x->/x
第一步
:%s#/d/+#/=printf("0x%x",submatch(0))#g
第二步
%s/0x///x/g
第一步里边那个"0x%x"死活不能写成"/x%x"。"//x%x"也不能达到/xa0的效果。
接着又一位大侠出现啦:)
'//x'
接着给出解释:
vim中的字符串,如果用"要做/替换,用'不做那个s命令要的字符串是//x所以,printf要输出//x
这时用''比较方便,否则得写成"x"
发信站: 水木社区 (Thu Apr 17 17:06:45 2008), 站内
文本有很多行,格式类似为
160,161,162,162
163,164,165
……
要变成16进制
格式为
/xa0,/xa1,/xa2,/xa2
/xa3,/xa4,/xa5
……
第一个大侠的回复
标 题: Re: 求替换10进制变16进制
发信站: 水木社区 (Thu Apr 17 20:06:02 2008), 站内
我只能两次替换才能完成,第一次 160->0xa0,第二次0x->/x
第一步
:%s#/d/+#/=printf("0x%x",submatch(0))#g
第二步
%s/0x///x/g
第一步里边那个"0x%x"死活不能写成"/x%x"。"//x%x"也不能达到/xa0的效果。
接着又一位大侠出现啦:)
'//x'
接着给出解释:
vim中的字符串,如果用"要做/替换,用'不做那个s命令要的字符串是//x所以,printf要输出//x
这时用''比较方便,否则得写成"x"