部分中文字符(例如 “加”)出现在分支名时,omz 的 分支显示会显示出错
(显示�问号)

按照从网上搜索的解决方案(设置 LANG=zh_CN)之后无作用。
查看了 oh-my-zsh 代码之后发现
是 symbolic-ref --short HEAD
这个命令会返回错误的值
将这个 bug 反馈到 git 开发组之后,从开发组的邮件中看到当设置 LANG = C
的时候能正确显示,但是会出现其他问题


但是会出现的问题是,omz 的自动补全功能会出问题。
例如:输入 cd 然后按 tab 自动补全,此时会将命令显示两遍

因此该解决方法不适用。
目前的临时解决方案是:
修改 oh-my-zsh 代码,去掉 --short
参数,不采用短分枝名,让它显示完整的分枝名。
具体操作方法:
- 打开
~/.oh-my-zsh
文件夹 - 全局搜索
symbolic-ref --short
字段(目前应该只在lib/git.zsh
和lib/cli.zsh
两个文件里各有一行) - 删除这两个命令里的
--short
(建议注释掉这一行,然后复制一行在下面修改,这样下次要改回来搜索的时候比较方便) - 重启终端
最终效果如下:

缺点:branch 太长,正常应该没有前面的 refs/heads/
目前 git 开发组正在修复这个问题,所以接下来应该很快就不会出现这个bug了。
|=========================
2.40.0 版本 已经修复该 bug

网友评论