bash更改提示符颜色后换行错位
Posted 知了和狗
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bash更改提示符颜色后换行错位相关的知识,希望对你有一定的参考价值。
今天又装了Debian, 顺手给提示符更改了一下颜色, 这个很简单, 在.bash_profile中设置PS1变量就可以了, 但是会有一个小问题, 更改颜色后bash的换行出现了错位.
.bash_profile中更提示符颜色的代码如下:
PS1='[\e[1m\e[32m\u\e[34m@\e[35m\h \e[31m\w\e[0m]# '
更改后的效果:
然后换行就出现了问题:
一直按删除, 光标停在这地方不动了:
实际上之前的debian也是这样, 将就着用了, 今天决定解决一下, 搜索了半天, 完美解决.
方法是使用\[
和\]
告诉Bash哪些是 escape 字符, 让它正确的计算提示符长度, 于是就正常啦.
更改后的代码:
PS1='\[[\e[1m\e[32m\]\u\[\e[34m\]@\[\e[35m\]\h \[\e[31m\]\w\[\e[0m\]]# '
天书一般.
顺便吐槽一下百度, 搜了半天没搜出答案, 同样的关键字Google第一条就搜出来了.
以上是关于bash更改提示符颜色后换行错位的主要内容,如果未能解决你的问题,请参考以下文章