欢迎来到 岁月小筑

解决K9S在Windows 10/11下使用文字边框错位的问题

解决方案

 

在系统->高级->环境变量中的用户变量里添加 RUNEWIDTH_EASTASIAN=0

回溯

根据:https://github.com/derailed/k9s/issues/1091 的对话,我发现这个可能与Golang里的tui生成方式有关,于是我在网上根据Windows的RUNEWIDTH_EASTASIAN参数,找到两篇关于东亚不确定宽度字符的文章:

https://qiita.com/noborus/items/c2c9e9002761f53c6cd0

https://noborus.github.io/blog/runewidth/index.html

看来应该是比较经典的问题,制表字符与Unicode字符的宽度不同问题,理论上有两种解决解决方法,一种是将所有不确定宽度的字符设为全角字符(强制使其占用两个显示字符位),同时设置RUNEWIDTH_EASTASIAN=1,这样可以保证正常显示等宽字符。

另一种就是Windows Terminal默认的设置,不确定宽度的字符设为半角,所以我们这里只能修改RUNEWIDTH_EASTASIAN=0

同时这个问题2022年也在Windows Terminal的repo下提过了,不过好像到目前为止都还没有修复

https://github.com/microsoft/terminal/issues/153

点赞
  1. 广树说道:

    哇,好久没有看到大佬发布博文了!

  2. 肥饶国学说道:

    我以为我显示器的问题

发表评论

电子邮件地址不会被公开。