如何在Vim中使用UTF-8序列输入Unicode字符?

10

是朝鲜的货币符号,其Unicode编码点为U+20a9
在插入模式下,我可以按Ctrl-V u20a9 来输入它。
如果我只知道它的UTF-8形式e2 82 a9,如何轻松输入?

2个回答

10

我刚找到了这个解决方案:

在插入模式下,按下 Ctrl-R ="\xe2\x82\xa9" Enter

不过我想知道是否还有其他(更短的?)方法。


6
同样的解决方案,加上自动化的改进来帮助记忆:
command! -nargs=* UTF8 call EncodeUTF8(<f-args>)
fun! EncodeUTF8(...)
   let utf8str = ""
   for i in a:000
      let utf8str .= "\\x" . i
   endfor
   exe "norm i" . eval("\"".utf8str."\"")
endfun

现在你可以输入:UTF8 e2 82 a9来打出这个字符。

你也可以使用<C-k>W=来打出它。详见:help digraph-table-mbyte

注意,在正常模式下,你也可以用gag8获得一个字符的信息。因此,只需执行一次<C-r>="\xe2\x82\xa9",然后执行ga即可获取代码点。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接