命令行/提示符损坏,无法编辑(WSL2)

命令行/提示符损坏,无法编辑(WSL2)

我正在使用带有 WSL2 的 Windows 10。到目前为止,在我尝试过的所有终端中,我很快就遇到了损坏的命令行。按 ENTER 后,实际命令会出现不同的情况,部分命令提示符会被删除,光标位置不会进行编辑,并且会添加随机空格等问题。今天特别具有挑战性,使我很难有效地工作。

也许在使用向上/向下箭头键滚动历史记录后会发生这种情况。
重新启动 WSL、清除终端、重新启动终端都没有帮助。
因此,重新启动后,我滚动历史记录并繁荣!

知道如何修复它吗?我读到终端有一些重置命令。如何重置?也许这可以帮助...

这里仅举一个例子:执行后,git log...我使用向上箭头键返回到命令,但命令提示符的末尾以及命令的开头都被部分破坏。 在此输入图像描述

[16:25:20] blade@DESKTOP-VQABTK7:/bytex/site$ echo $PS1; echo;
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$

答案1

这看起来像是 Debian/Ubuntu/Mint 默认提示符的相当标准的彩色版本。

\[           # begin non-advancing characters
\e]0;        # escape sequence to update terminal title
\u@\h: \w    # sets title to <user>@<host>: <working directory>
\a           # end terminal title
\]           # end non-advancing characters
${debian_chroot:+($debian_chroot)} # if within a Debian chroot, name of the chroot env
\[           # begin non-advancing characters
\033[01;32m  # escape sequence to set colors
\]           # end non-advancing characters
\u@\h        # output <user>@<host> for the prompt
\[           # begin non-advancing characters
\033[00m     # escape sequence to set colors
\]           # end non-advancing characters
:            # output :
\[           # begin non-advancing characters
\033[01;34m  # escape sequence to set colors
\]           # end non-advancing characters
\w           # output current working directory
\[           # begin non-advancing characters
\033[00m     # escape sequence to set colors
\]           # end non-advancing characters
\$           # output $ if a regular user, or # if root
<space>      # output a space after prompt

请注意,终端标题也被正确地计为非前进字符。

但这会导致一个看起来像这样的提示(没有颜色的模拟):

blade@DESKTOP-VQABTK7:/bytex/site$ 

开头的时间戳从哪里来?

你有$PROMPT_COMMAND定吗?

要干净地生成提示,请删除当前导致提示出现时间戳前缀的任何黑客行为,然后尝试以下PS1设置:

PS1='[\t] \[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

相关内容