경로에 유니코드(그리스어) 문자가 포함된 경우 Bash 프롬프트 줄 바꿈이 깨짐

경로에 유니코드(그리스어) 문자가 포함된 경우 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"'

관련 정보