パスにUnicode(ギリシャ語)文字が含まれていると、Bashプロンプトの改行が壊れます

パスにUnicode(ギリシャ語)文字が含まれていると、Bashプロンプトの改行が壊れます

パスが長すぎて端末に表示できず、改行が発生すると、次のプロンプトが壊れ、正しく入力した内容が表示されなくなります。以下のスクリーンショットをご覧ください。

ここに画像の説明を入力してください。

.bashrcPS1Ubuntuがデフォルトで提供する設定内容です。

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt

# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
    ;;
*)
    ;;
esac

$PS1値は

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

この問題を解決する方法はありますか?

\[ \]提案された解決策は、問題のある部分をaまたはセットに含めることですが、checkwinsize私の場合は両方とも機能しない他の同様の質問をいくつか見ました。

誰もがパスでテストしたい場合は、次のように表示されます。

/home/dimitriv/Dropbox/personal/kastoria/2018-2019/προγραμματισμός στο διαδίκτυο/newslides

ベストアンサー1

PS1クイック修正は、ウィンドウタイトル設定セクションをスクリプトに置き換えることですPROMPT_COMMAND

case "$TERM" in ... esacブロック内で次のように.bashrc置き換えます。PS1=...

PROMPT_COMMAND='printf %b "\e]0;${debian_chroot:+($debian_chroot)}$USER@$HOSTNAME:$PWD\a"'

おすすめ記事