解决修改 Bash Prompt 后翻阅历史命令时显示错位

在修改过PS1变量后,使用上下方向键翻阅历史命令时可能会出现命令将提示符覆盖掉的情况。

方法

将不可见字符(如 ASCII 颜色字符)用\[\]包起来。

例如:PS1=\e[32m\$\e[0m  -> PS1=\[\e[32m\]\$\[\e[0m\] 

原理

Bash 在覆盖当前行时会计算 Prompt 的长度,即使是不可见字符也会计算在内。\[\]的作用是让 Bash 不计算这部分字符的长度。

参考资料

解决修改 Bash Prompt 后翻阅历史命令时显示错位
https://www.sjdhome.com/blog/post/bash-prompt-mess-up-scroll-history-display/

本文作者
sjdhome
发布于
2023/7/10
许可协议

转载或引用本文时请遵守许可协议,注明出处、不得用于商业用途!

#技术#Linux

评论区加载中…

由于需要连接 GitHub,中国大陆访客可能面临加载缓慢。