oh-my-zsh 中 git branch 乱码显示问号问题分

2023-02-13  本文已影响0人  德川家康薛定谔

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

显示乱码,包含问号

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

开发者邮件显示设置 LANG=C 时正常 branch 分之正常显示

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


显示了两个 cd ../../

因此该解决方法不适用。
目前的临时解决方案是:
修改 oh-my-zsh 代码,去掉 --short 参数,不采用短分枝名,让它显示完整的分枝名。
具体操作方法:

  1. 打开 ~/.oh-my-zsh 文件夹
  2. 全局搜索 symbolic-ref --short 字段(目前应该只在 lib/git.zshlib/cli.zsh 两个文件里各有一行)
  3. 删除这两个命令里的 --short (建议注释掉这一行,然后复制一行在下面修改,这样下次要改回来搜索的时候比较方便)
  4. 重启终端

最终效果如下:


汉字部分无问题

缺点:branch 太长,正常应该没有前面的 refs/heads/

目前 git 开发组正在修复这个问题,所以接下来应该很快就不会出现这个bug了。
|=========================
2.40.0 版本 已经修复该 bug

image.png
上一篇 下一篇

猜你喜欢

热点阅读