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

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

因此,每当我尝试输入命令时,如果命令太长,命令就会覆盖自身。我尝试过多种方法,例如:

  • 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文件中,[]但仍然没有成功。任何帮助都将不胜感激。


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

 export PS1="[\e[0;32m[\u@\h \W]\$ "

就是我目前文件里的内容。

答案1

基于关于“如何让长命令行换到下一行?”的答案,你的 PS1 出现了问题:

export PS1="[\e[0;32m[\u@\h \W]\$ "

因此\e[0;32m改为\[\e[0;32m\]

export PS1="\[\e[0;32m\][\u@\h \W]\$ "

此外,您可能希望删除该零,\e[0;32m因为它不执行任何操作,并且* 使用以下命令重置提示末尾的颜色\e[m

export PS1="\[\e[0;32m\][\u@\h \W]\$\[\e[m\] "

*更正艾格蒙特评论

0会重置属性,如果之前执行的命令没有自行清理,例如留下非默认背景颜色、粗体/斜体/等属性,则会产生影响。在这种情况下,它会被恢复。在“正常”情况下,它不会执行任何操作,但无害。

相关内容