Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.
RetroTech 팟캐스트 44BITS 팟캐스트

OS X에서 PS1 수정했을 경우 터미널의 폭이 달라지는 문제

vcprompt를 이용해서 bash 프롬프트에 VCS 정보 표시하기에서 설명한 것처럼 기본 프롬프트대신 PS1을 수정해서 취향대로 프롬프트를 커스터마이징해서 사용할 수 있습니다.

터미널 화면

저는 위처럼 변경해서 사용하고 있는데 이렇게 했을 경우 명령어를 사용하고 화살표로 위아래로 이동해서 이전 히스토리 명령어를 사용하려고 할 때 명령어의 폭이 제대로 안나와서 명령어를 수정할 수 없는 경우들이 있습니다. OS별로 정확히 테스트해 본 것은 아니지만 리눅스에서는 이런 문제를 아직 못본것 같은데 OSX에서는 자주 발생합니다. 그냥 좀 귀찮은대로 사용하다가 맘먹고 검색해서 해결방법을 찾았습니다.

PS1에 색상을 다양하게 보여주기 위해서 색상을 변경하는 명령어들을 사용하는데 이런 명령어가 자리는 차지하지만 실제로 출력은 되지 않기 때문에 터미널이 프롬프트의 폭을 잘못계산해서 발생하는 문제입니다. 색상을 변경하는 병령어를 저같은 경우는 변수에 담아서 ${COMMAND}와 같이 사용하는데 \[${COMMAND}\]처럼  \[ \]로 이스케이프 해주면 됩니다. 일단 저같은 경우는 이렇게 해서 해결이 되는데 이외에도 폭인식을 잘못하게 하는 다른 이유도 또 있는지 모르겠네요.
2012/08/09 01:07 2012/08/09 01:07