ZSH에서 여러 줄에 걸친 프롬프트 문자열이 터미널 크기가 변경될 때 잘못 출력되는 경우

현상


셸을 ZSH로 쓰는 경우에 있어서 여러 줄에 걸친 프롬프트 문자열이 터미널 크기가 변경될 때 맨 첫줄이 한 번 더 출력되는 문제입니다. 
prompt 1st line 
prompt 2nd line > 

터미널 크기 변경 후 
prompt 1st line 
prompt 1st line
prompt 2nd line > 

테스트 방법 :
  1. zsh 실행 후 다음 명령 실행하여 여러 줄 프롬프트 생성합니다.

    export PROMPT="[%n@%m][%D{%Y.%m.%d %H:%M}][%~]] >"
  2. 창 크기 조절하여 터미널 크기를 변경해 봅니다.
  3. 첫 줄이 한 번 더 출력되는 문제 확인합니다.



원인 및 해결방법


2009년 3월 19일 현재 zsh의 버그입니다. 특정 터미널 에뮬레이터에서 발생하는 문제가 아니고 모든 에뮬레이터에서 발생합니다. 

현재 zsh 개발자들에게 이 문제가 보고는 되어 있으나 2009년 3월 19일 현재까지 해결책은 없습니다. zsh에서 여러 줄에 걸친 프롬프트 문자열을 사용하고자 할 경우에는 'print -rP "...."' 명령어를 사용합니다.

ex) $ export PROMPT=`print -rP "[%n@%m][%D] >"`