百度搜到的答案不管是打补丁还是删掉某字符本质上都是改zsh主题代码,删除掉无法识别宽度的字符,没找到问题的根本。
真正的解决方法不是删掉不能识别的字符,而是想办法让系统能够正确识别。
可直达
二选一:
- 在你的
.zshrc
里面添加一条export LC_CTYPE=en_US.UTF-8
,修改后记得source ~/.zshrc - 或者在
/etc/locale.conf
添加一行LC_CTYPE=en_US.UTF-8
,这里没有export
,修改完后运行locale.gen。
拓展资料
其实就是修改环境变量LC_CTYPE。修改LANG_ALL
, LC_CTYPE
, LANG
三个中的任意一个都行,他们存在包含以及优先级的关系。
LANG包含12个locale属性(LC_CTYPE就是其中之一),修改LANG_ALL和LANG都是把十二大类全部统一修改。
区别在于:对于LANG_ALL,就算你单独设置了LC_CTYPE或者LANG,也会用LANG_ALL的值覆盖掉你设置LC_CTYPE的值,全部统一。
而对于LANG,如果你单独设置LC_CTYPE是会生效的,但是其他没有单独设置的LC_*都会沿用LANG的值。
更详细的请自行百度LANG LANG_ALL LANG_CTYPE
。
玩Linux,如果有条件的最好访问404网站,没有条件的推荐用bing国际版,百度真不行。