红联Linux门户
Linux帮助

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

发布时间:2016-01-25 11:36:32来源:linux网站作者:klinghr

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


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

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

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

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


命令分解如下:

 

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

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


本文永久更新地址:http://www.linuxdiyf.com/linux/17661.html