utf-8时vim显示半个字符的解决办法


【问题】
  set
enc=utf-8有些好处(新建文件默认为utf-8便于和非win系统交流;识别文件编码正确率更高。当然,如果用其他enc没什么不便就无须改)
  但是,这样会让一些中文字符显示不完整。如“”①②→等

【猜测】
  可能是vim不知道这是全角字符,与“对应”的半角字符混淆。今日一查,果然。

【解决】
  set ambiwidth=double

【解释】
  ①:h ambiwidth
  ②下文来自吴咏炜《Vim 实用技术,第 1 部分:
实用技巧》

   ambiwidth=double:把所有的“不明宽度”字符 [9]——指的是在
Unicode
字符集中某些同时在东西方语言中使用的字符,如省略号、破折号、书名号和全角引号,在西方文字中通常字符宽度等同于普通
ASCII 字符,而在东方文字中通常字符宽度等同于两倍的普通 ASCII
字符,因而其宽度“不明”——的宽度置为双倍字符宽度(中文字符宽度)。此数值只在
encoding 设为 utf-8 或某一 Unicode
编码时才有效。需要额外注意的是,如果你通过终端使用 Vim
的话,需要令终端也将这些字符显示为双宽度……

【感受】
  关于vim的问题,看来只要寻找,通常能找到解决办法的。

,

《“utf-8时vim显示半个字符的解决办法”》 有 1 条评论

发表回复

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据