vim 小技巧 : 字码转换

王朝other·作者佚名  2008-05-21
窄屏简体版  字體: |||超大  

今天又遇到一个问题,像有时候会看到像这样的字「忽然」这样的东西。我们虽然心裡面知道这可能代表两个字,但是却还是不知道那到底是什麼。以前我的方法就是丢进网页裡面去,今天护教说「没救了,就用 vi 吧」,让我想到,对呀,说不定 vim 可以解这个问题喔!

还是一样先说解法:

:set enc=utf8

:%s/&#\([0-9]\+\);/\=nr2char(submatch(1))/g

这次多了一个没介绍过的,就是nr2char(),这个函数用来帮助我们把数字(number)转成字元(character)。只是要记得把 encoding 转换到 utf8 去,不然转出来的东西可能不是你要的。

submatch 我们之前介绍过了,就是用来表示\(string\)的意思,假设\(string\)这样的东西有 n 个,那第 k 个就是 submatch(k)。

所以整个所作的事情就是把&#后面跟著数字取出来,交给nr2char来做转换,如此而已。你可以尝试转转看,上面那一串东西经过 vim 转换之后会变成「忽然」这两个字,你转出来了吗?

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航