Bash

當路徑包含 unicode(希臘語)字元時,Bash 提示符換行被破壞

  • November 4, 2018

當路徑太長而無法在終端上容納並換行時,以下提示將被破壞,您無法正確看到鍵入的內容。請看下面的截圖:

在此處輸入圖像描述

這些是該.bashrc設置的內容PS1,這是 Ubuntu 提供的預設設置。

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\]\$ 

有什麼辦法可以解決嗎?

我已經看到了其他幾個類似的問題,建議的解決方案是將有問題的部分包含在\[ \]或 setcheckwinsize中,但在我的情況下都不起作用。

如果有人想使用路徑進行測試,則如下:

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

快速修復可能是PS1PROMPT_COMMAND腳本替換視窗標題設置部分。

case "$TERM" in ... esac你的塊內.bashrc,替換PS1=...

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

引用自:https://unix.stackexchange.com/questions/479733