表达式将unicode代码点转换为字符

时间:2014-09-10 14:26:02

标签: vim unicode

我有一个已经转发unicode的文件:

blah blah blah \u2192 blah blah blah

我想通过搜索/替换将unicode转义符转换为实际字符:

:%s/\\u\(\d\{4}\)/\=CodePointToCharacter(submatch(1))/g

虽然我知道如何在插入模式下将代码点转换为字符(CTRL-V u 2192 for→),但我不知道如何在vimL表达式中进行转换。

我是否需要编写自定义函数,或者是否有可以使用的内置函数或插件?

1 个答案:

答案 0 :(得分:3)

您可以先使用str2nr()转换HEX中的数字,然后使用nr2char显示字符。

稍微延长你的命令:

%s/\\u\(\x\{4}\)/\=nr2char(str2nr(submatch(1),16))/g