入力を開始すると、長時間生成されたBashプロンプトが正しく表示されません。

入力を開始すると、長時間生成されたBashプロンプトが正しく表示されません。

計算に時間がかかるGit作業ツリーの状態が含まれているため、生成に時間がかかるBashプロンプトがあります。時には、コマンドが表示される前にコマンドを入力し始めましたが、コマンドが誤って折り返されることがあります。

端末で見た内容は次のとおりです。

# I start typing:
some command...

# then the prompt appears:
some command...username [branch*] some/directory $ some command...

# then I type some more, causing the command to wrap:
some command...username [branch*] some/directory $ some command...wra
pping text 1

# and when I continue typing, the text overwrites the second line:
some command...username [branch*] some/directory $ some command...wra
wrapping text 2

これを防ぐ方法を知っていますか?

私のBashプロンプトを設定する方法は次のとおりです。

# in .bashrc:
PROMPT_COMMAND="PS1=\`/home/username/my-prompt.sh\`"

# in /home/username/my-prompt.sh:
$PROMPT=...
$PROMPT+=...
echo -ne $PROMPT

私は$ PROMPTですべての合計を正しく設定したと思います\[\]この問題は、プロンプトが表示され、コマンドがラップされる前に入力を開始した場合にのみ発生します。

答え1

プロンプトを生成するときにターミナル出力を無効にすると機能します。

PROMPT_COMMAND="PS1=\$(stty -echo)\`/home/username/my-prompt.sh\`\$(stty echo)"

答え2

次のコマンドを使用して端末を通常モードに設定することをお勧めします(冗談です)

stty sane  # I hope it'll help and bring back the working of default prompt.

関連情報