我的终端线路不断覆盖自己

Iva*_*nes 3 command-line

因此,每当我尝试键入命令时,它都会变得太长。该命令只是覆盖自身。我尝试了多种方法,例如:

  • shopt
  • shopt -s checkwinsize
  • Ctrl+L
  • Alt+L
  • Space+L
  • Alt+ Space+L
  • eval $(resize)
  • if [ $(tty) == '/dev/ttyS0' ]; then trap resize DEBUG; fi

我已经在~/.bashrc文件中包含了我的颜色命令,[]但仍然没有运气。任何帮助将被appriciated。


我找到了问题的根源:问题出PS1在我的~/.bashrc文件中。

 export PS1="[\e[0;32m[\u@\h \W]\$ "
Run Code Online (Sandbox Code Playgroud)

是我目前在我的文件中的内容。

wja*_*rea 6

基于这个关于“如何让长命令行换行到下一行?”的回答。,你的 PS1 有问题:

export PS1="[\e[0;32m[\u@\h \W]\$ "
Run Code Online (Sandbox Code Playgroud)

所以\e[0;32m改为\[\e[0;32m\]

export PS1="\[\e[0;32m\][\u@\h \W]\$ "
Run Code Online (Sandbox Code Playgroud)

此外,您可能希望删除该零,\e[0;32m因为它什么都不做,并且* 在提示末尾使用以下命令重置颜色\e[m

export PS1="\[\e[0;32m\][\u@\h \W]\$\[\e[m\] "
Run Code Online (Sandbox Code Playgroud)

*从埃格蒙特评论更正

这会0重置属性,如果先前执行的命令没有在其自身之后进行清理,则会有所不同,例如保留非默认背景颜色,粗体/斜体/等。属性。在这种情况下,它被恢复。在“正常”情况下,它不会做任何事情,但无害。

  • `0` 会重置属性,如果之前执行的命令没有在其自身之后进行清理,例如留下非默认背景颜色、粗体/斜体/等,则会有所不同。属性。在这种情况下,它被恢复。在“正常”情况下,它不会做任何事情,但无害。 (2认同)