Gnome Terminal调整窗口大小时持续追加提示符问题
问题原因
这是Bash提示符宽度计算错误导致的异常。Bash将\[和\]包裹的内容识别为非打印控制字符(比如颜色转义序列),不计入提示符的显示宽度,如果你配置的提示符中存在未被\[/\]包裹的非打印控制字符,Bash计算出的提示符宽度就会和实际显示宽度不符,窗口缩小时的重绘、换行逻辑就会紊乱,出现多个提示符叠加的问题。
你的配置问题出在$(__git_ps1)调用部分:默认配置下__git_ps1返回的分支信息如果携带颜色转义序列,这些序列没有被\[/\]包裹,导致宽度计算错误。
解决方案
你可以直接合并两行PS1配置,统一管理控制字符包裹规则,修改.bashrc中的对应配置为以下内容即可:
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[01;33m\]$(__git_ps1)\[\033[00m\]\$ '
如果不需要git分支信息显示颜色,也可以关闭__git_ps1的颜色输出,在调用前添加GIT_PS1_SHOWCOLORHINTS=""配置即可。
修改完成后执行source ~/.bashrc让配置生效,再调整窗口大小就不会出现提示符叠加的问题。
内容的提问来源于stack exchange,提问作者Zane Phillips
相关产品推荐
相关产品推荐

