我有一个已经转发unicode的文件:
blah blah blah \u2192 blah blah blah
我想通过搜索/替换将unicode转义符转换为实际字符:
:%s/\\u\(\d\{4}\)/\=CodePointToCharacter(submatch(1))/g
虽然我知道如何在插入模式下将代码点转换为字符(CTRL-V u 2192
for→),但我不知道如何在vimL表达式中进行转换。
我是否需要编写自定义函数,或者是否有可以使用的内置函数或插件?
答案 0 :(得分:3)
您可以先使用str2nr()
转换HEX中的数字,然后使用nr2char
显示字符。
稍微延长你的命令:
%s/\\u\(\x\{4}\)/\=nr2char(str2nr(submatch(1),16))/g