在设置命令行提示符的字体颜色之后,输入超过一行的命令时会覆盖当前行内容,不能自动换行。问题原因是命令提示符中有控制字符(如字体颜色),它需要使用 \[
和\]
包围。
以下摘抄自bash的manpage中PROMPTING一节
\[ begin a sequence of non-printing characters, which
could be used to embed a terminal control sequence
into the prompt
\] end a sequence of non-printing characters
参考文章: