2012-05-15 3 views
13

이것은 내가 Google에서 좋은 답변을 찾을 수 없었던 이상한 것입니다 (당연히 그럴 가능성이 항상 있음). 내 bash 프롬프트에서 프롬프트의 일부를 색칠하면 이전 명령으로 가기 위해 '위로'누르십시오. 일정한 문자 (특히 31 자)를 지난 후에는 그 행의 처음으로 갈 수 없습니다. .Bash 프롬프트 기록 이슈

나의 현재 배쉬 프롬프트는 이것이다 : (색상이 내 .bashrc에 앞부분에서 정의)

PS1="[\[email protected]$cyan\h$NC \w] " 

을하지만이로 변경하는 경우 :

그것은 더 이상가는 저를 방지
PS1="[\[email protected]\h \w] " 

줄의 시작 부분으로.

홀수 부분은 시각적으로 줄의 시작 부분 (또는 화살표 키 사용)으로 돌아가서 문자열에 11자를 중지하지만, 거기에서 편집하면 편집됩니다 라인의 시작 부분부터 시작합니다.

왜 이런 일이 일어날 지 알고 있습니까? 서버 관리를 할 때마다 프롬프트에 색상을 사용하고 싶습니다. 색상을 사용하면 상자를 한눈에 구분할 수 있습니다.

답변

25

색상 코드와 같은 인쇄되지 않는 순서는 길이가 \[\]으로 둘러싸여 야하므로 길이는 프롬프트 길이의 일부로 계산되지 않습니다.

+1

[예] (https://github.com/l0b0/tilde/blob/9161937d6173e65e81de145bbc7edbbb074e99e5/.bashrc#L92) – l0b0

+0

정확히 그게 고마워! –

+0

몇 달 동안이 성가신 문제가있었습니다. 고맙습니다! +1 – jweyrich