[已解决]WIN32下GVIM的全角中文符号问题
这个问题似乎跟字体有关,set ambiwidth=double解决。有点奇怪,网上几乎没有该问题的描述,即使用ambiwidth作keyword搜索,也只有两三篇中文文档提到了这个问题。
有兴趣知道为什么的请看源码,mbyte.c中的utf_char2cells函数。
p_ambw在option.h中定义,即ambiwidth。
以下为原始问题:
---------------------------------------------------------------------
gvim在windows里显示中文全角的引号“”有问题,会把这两个字符当成半角显示。在论坛和网上找了很多地方,都没找到有关这个问题的描述和解释,请问有人知道这个问题是怎么搞的,能解决么?
谢谢~ 我的没问题啊 是不是你输入时输入的就是半角符号 第二行的内容是:一“三”五
三字本来应该跟可字对齐
我说的是win32版的gvim,你用的是哪个版本啊? 去翻vim的源码,似乎是找到问题所在了。
当set encoding=chinese的时候,引号显示正常,但set encoding=utf8的时候则不正常。
vim似乎是根据一个叫mb_bytelen_tab的数组来判断字符宽度的。
在win32平台下,且enc=chinese时,mb_bytelen_tab使用IsDBCSLeadByteEx函数填充,msdn上说这个函数判断一个字节是否为一个双字节字符的起始字节。
enc=utf8时,使用一个预定义的utf8len_tab数组对mb_bytelen_tab进行填充。
引号的utf8编码是0x1c20和0x1d20,我试了试,把utf8len_tab的相关元素改成2,但似乎没有作用的样子。问题还是没有解决,还在找解决的办法。
页:
[1]