Neovim中:GCheckout与:checkhealth命令分支名旁出现乱码问题求助
Neovim+fugitive 分支选择界面乱码修复方案
排查步骤
- 确认系统字符集配置
终端执行locale,检查LANG、LC_ALL字段值是否为带.UTF-8后缀的编码(如zh_CN.UTF-8、en_US.UTF-8),若为POSIX或其他非UTF-8编码,需重新生成系统locale:Debian/Ubuntu 系列执行
sudo dpkg-reconfigure locales,勾选对应UTF-8 locale并设置为系统默认,完成后重启终端生效。
注意:修改locale后需完全关闭终端进程再重新打开,避免旧环境变量残留 - 补充Neovim编码配置
在init.vim中添加以下编码规则,避免Neovim解析外部命令输出时编码不匹配:
保存配置后重启Neovim验证效果。set encoding=utf-8 set fileencoding=utf-8 set fileencodings=utf-8,gbk,gb2312,cp936 set termencoding=utf-8 - 确认Neovim调用的shell配置
执行:echo &shell检查Neovim内部默认调用的shell,若返回fish等非POSIX兼容shell,可在init.vim中强制指定默认shell:set shell=/bin/bash - 排查fugitive自定义配置
执行:echo g:fugitive_git_command检查是否自定义了git调用命令,若返回值不为默认的git,可先注释掉相关自定义配置验证乱码是否消失。 - 验证终端模拟器编码设置
检查当前使用的终端模拟器偏好设置,确认默认字符集为UTF-8,禁用GBK、GB2312等非UTF-8编码选项。
内容的提问来源于stack exchange,提问作者Prhyme
相关产品推荐
相关产品推荐

