【问题】
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的问题,看来只要寻找,通常能找到解决办法的。