vim 利用查找替换命令把所有的十进制数字转化成十六进制数字

vim 的查找替换功能相当强悍,这是在网上找到的一个功能:把所有的10进制数字,转化成16进制数字。

首先确定在 vim 的命令模式下,然后敲入以下命令:

:%s//d/+//=printf(“%X”, submatch(0))/g

ImageHost.org

回车,现在文档中的全部数字都已经转化成16进制的数字:

ImageHost.org

这条命令的原理是,把一串数字,用 printf() 函数的输出替换掉,printf() 函数输出的正是这串数字的16进制形式。

命令分解如下:

%s  在整个文件中替换 (:help :s )
/d/+  匹配一个或多个数字 (:help //d :help //+ )
/= 使用表达式的结果进行替换 (:help //w )
printf 按指定格式输出 (:help printf() )
submatch() 返回:s命令中的指定匹配字符串 (:help submatch() )
g 替换行内所有出现的匹配 (:help :s_flags)

看来,vim 替换命令的巧妙使用可以完成很多意想不到的功能!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值