Arch Linux环境下vifm文件名西里尔字符显示异常问题求助
Arch Linux 下 vifm 西里尔字符显示异常解决方案
该问题无需安装 vifm 额外附加包,通常由系统 locale、终端编码或 vifm 自身编码配置错误导致,可按以下步骤排查解决:
- 第一步:确认系统 locale 配置
运行locale -a查看已生成的 locale 列表,确认存在ru_RU.utf8类的 UTF-8 俄语 locale,若不存在:- 编辑
/etc/locale.gen文件,取消ru_RU.UTF-8 UTF-8行的注释 - 执行
sudo locale-gen生成对应 locale - 编辑
/etc/locale.conf,确保LANG变量值为 UTF-8 编码格式(如LANG=ru_RU.UTF-8或LANG=zh_CN.UTF-8均可,只要为 UTF-8 编码即可)
- 编辑
- 第二步:确认终端编码配置
运行echo $LANG确认终端当前使用编码为 UTF-8,同时在终端设置中将默认字符编码调整为 UTF-8(现代终端默认已启用该配置) - 第三步:调整 vifm 编码配置
编辑 vifm 配置文件~/.config/vifm/vifmrc,添加以下两行配置:
配置中加入的 cp1251、koi8-r 为西里尔常用旧编码,可兼容识别旧编码的文件名set encoding=utf-8 set fileencodings=utf-8,cp1251,koi8-r,utf-16 - 第四步:排查挂载分区编码参数
若异常显示的文件在 FAT32/NTFS 等挂载分区中,可在挂载时添加iocharset=utf8参数,或者修改/etc/fstab对应分区的挂载参数,增加该配置项
配置完成后重启 vifm 即可生效,也可在 vifm 内执行 :restart 重新加载配置验证效果。
内容的提问来源于stack exchange,提问作者Misha Rusalimov
相关产品推荐
相关产品推荐

