我知道这很奇怪,但出乎意料的是,今天我将一个长命令复制到终端中,它没有像预期的那样自动换行,而是开始覆盖同一行。命令执行得很好,但变得不可读。通常当发生这种情况时,您只需按几次 Enter 即可修复,但在这种情况下不行。我重新启动了终端,甚至重新启动了,但情况还是一样。
我可能认为这与我编辑了 /etc/bash.bashrc 文件以自定义提示颜色等有关。但我几天前就这样做了,编辑后并没有发生这种情况。我保存了一个备份以防万一,如果有人认为可能是这样,我已经包含了两个文件的差异输出:
$ diff /etc/bash.bashrc /etc/bash.bashrc.bak
19c19
< PS1='\e[1;32m\u: \e[m\w\n\e[1;33m\$\e[m '
---
> PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
任何想法都是有帮助的,这是一个非常奇怪的问题。
答案1
尝试使用这个PS1
:
PS1='\[\e[1;32m\]\u: \[\e[m\]\w\n\[\e[1;33m\]\$\[\e[m\] '
不同之处在于转义序列(\e..
)被包裹在中\[ .. \]
,这有助于 Bash 更好地跟踪光标。