기록을 스크롤할 때 여러 줄 명령이 커서 위치를 엉망으로 만드는 것을 어떻게 방지합니까?

기록을 스크롤할 때 여러 줄 명령이 커서 위치를 엉망으로 만드는 것을 어떻게 방지합니까?

관련된:기록 검색 시 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  
$ 

매우 감사합니다http://bashrcgenerator.com/.

답변1

"모든 것"은 괄호로 묶여 있지만 알려지지 않은 것이 몇 가지 있습니다. 열이 오른쪽으로 이동했기 때문에 이는 bash가 인식하지 못하는 텍스트를 보내는 것을 의미합니다.

로케일 불일치로 인해 이 문제가 발생할 수 있지만저것.

귀하의 구성이 다음 색상 기능을 사용하고 있지 않은지 확인하고 확인하겠습니다 __git_ps1.페도라 모자전화가 호출됩니다.git-prompt.sh, 이는 (설정한 경우 GIT_PS1_SHOWCOLORHINTS) 이스케이프 시퀀스를 보낼 수 있으며, 이는 실제 열에 대해 bash를 혼란스럽게 할 수 있습니다.

관련 정보