コマンドライン/プロンプトが破損して編集できません(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\]\$ '

おすすめ記事