Windows下Vim对西里尔文本的文档导航操作失效 Linux下运行正常
Windows下Vim处理西里尔字符
dw命令失效的解决方案 根本原因
- Windows版Vim默认编码配置未适配非拉丁字符场景,而Linux发行版默认全局启用UTF-8编码,所以不会出现该问题
- Vim的
iskeyword参数定义了被判定为单词组成部分的字符范围,Windows版默认配置未包含西里尔字母的Unicode区间,会把每个西里尔字母识别为独立的单词边界,因此dw命令只能删除单个字符,无法删除整个单词
解决步骤
- 打开Windows版Vim的配置文件
_vimrc(gvim配置通常放在安装根目录,或者当前用户的家目录下),添加以下配置:
# 全局编码设置为UTF-8 set encoding=utf-8 # 打开文件时优先尝试UTF-8,再适配俄语常用编码 set fileencodings=utf-8,cp1251,koi8-r,default,latin1 # 把西里尔字母加入单词判定规则 set iskeyword+=а-я,А-Я,ё,Ё
- 保存配置文件后重启gvim,即可正常使用
dw等操作单词的命令处理西里尔文本。 - 如果使用Windows控制台版Vim,还需要在启动Vim前执行
chcp 65001命令将控制台代码页切换为UTF-8,再启动Vim即可。
内容的提问来源于stack exchange,提问作者proggamer12
相关产品推荐
相关产品推荐

