관련된:기록을 탐색할 때 내 bash 프롬프트에 버그가 발생하는 이유는 무엇입니까?
역사는 다음과 같습니다:
1831 git remote -v
1832 gs
1833 gd
1834 gc -am 'moved apsum options etc to their own file
set routes to allow cors
changes to the apsum pull '
1835 git push
1836 reset
1837 history
1838 __git_ps1
1839 reset
1840 history
1841 Kill 99894
1842 history
g*
모두 git 명령의 별칭입니다. 기록을 스크롤하면 숫자 1833에 도달할 때까지 모든 것이 괜찮습니다(밑줄은 커서 위치를 나타냄).
$ gd _
[ up arrow]
$ gds_
[up arrow]
$ gdit remote -v_
내 PS1에 인쇄되지 않는 문자 때문이라고 생각했지만 모든 항목을 괄호로 묶었습니다.
PS1="\n\[$FCYN\]\$(date +%H:%M:%S) \w\[$IGreen\]\$(__git_ps1)\[$Black\] $ \[$DarkGray\]"
내가 뭐 놓친 거 없니? 여러 줄의 커밋 메시지가 있을 때 이런 일이 발생합니까?
편집하다: 내 최종 솔루션이 너무 커서 댓글을 달 수 없습니다.
export PS1="\\n\[\033[38;5;246m\]\u@\[$(tput sgr0)\]\[\033[38;5;245m\]\h\[$(tput sgr0)\]\[\033[38;5;15m\] \[$(tput sgr0)\]\[\033[38;5;28m\]\w\[$(tput sgr0)\]\[\033[38;5;15m\]\[$(tput sgr0)\]\[\033[38;5;2m\]`__git_ps1`\[$(tput sgr0)\]\[\033[38;5;15m\] \[$(tput sgr0)\]\[\033[38;5;90m\]\t\[$(tput sgr0)\]\[\033[38;5;15m\] \[$(tput sgr0)\]\[\033[38;5;232m\]\[$(tput sgr0)\]\[\033[38;5;15m\] \[$(tput sgr0)\]\n\[$(tput sgr0)\]\[\033[38;5;0m\]\\$\[$(tput sgr0)\] "
이상해 보이지만 밝은 배경에서 읽기 쉬운 git 브랜치와 색상을 사용하여 멋진 프롬프트를 생성합니다(여기에서는 볼 수 없음).
collumj@machineName ~ (dev) 17:35:42
$
답변1
"모든 것"은 괄호로 묶여 있지만 알려지지 않은 것이 몇 가지 있습니다. 열이 오른쪽으로 이동했기 때문에 이는 bash가 인식하지 못하는 텍스트가 전송되고 있음을 의미합니다.
로케일 불일치로 인해 이런 일이 발생할 수도 있지만 아마도 눈치채셨을 것입니다.저것.
귀하의 구성이 의 색상 기능을 사용하고 있지 않은지 확인하고 확인하겠습니다 __git_ps1
. 에 따르면페도라라는 스크립트를 호출합니다.git-prompt.sh
, 이는 ( set 을 설정한 경우 GIT_PS1_SHOWCOLORHINTS
) 실제 열과 관련하여 bash를 혼동시킬 수 있는 이스케이프 시퀀스를 보낼 수 있습니다.