Fedora 38 터미널 결함

Fedora 38 터미널 결함

최근 Fedora 38에서 bash에서 zsh로 전환했습니다.
oh my zsh를 설치했고 다음 플러그인이 있습니다.
plugins=(git fzf tig zsh-autosuggestions)

내 터미널이 이상하게 작동합니다. 키보드를 누르면 up일부가 사라지고, 마우스 가운데 버튼으로 뭔가를 붙여넣으면 이상하게 글리칭이 되네요.

또한 백스페이스 키를 사용하여 명령을 삭제하면 해당 명령의 일부가 터미널에 남아 있지만 입력하는 새 명령에는 영향을 미치지 않습니다. (그림 2를 참조하세요. 명령을 제거할 수 없지만 oc lo프롬프트 시작 부분에 있는 것처럼 작동하여 ls --help성공적으로 실행됩니다.)

아래에는 이상한 결함을 보여주는 스크린샷이 있습니다.

맥락상 용어를 기본 터미널로 사용하지만 Konsole을 사용하는 동안에도 이러한 문제가 발생했습니다.

이것이 oh my zsh의 일반적인 문제입니까?

불필요한 공간이 추가되었습니다.oclols --도움말 이미지

내 주요 팁은 다음과 같이 정의됩니다.

$ typeset PROMPT
PROMPT='[%n]$fg[blue][%m]%{$fg[white]%}$(git_custom_status)[%~% ]%{$reset_color%}%B$%b '

답변1

귀하의 장소:

 PROMPT='[%n]$fg[blue][%m]%{$fg[white]%}$(git_custom_status)[%~% ]%{$reset_color%}%B$%b '

$fg[white]및 는 $reset_color아마도 터미널에 전경색을 흰색으로 변경하고 colors자동 로드 가능 기능에 의해 정의된 색상을 재설정하여 zsh의 줄 편집기에 이러한 문자가 너비 0으로 표시된다는 것을 알리는 이스케이프 시퀀스일 수 있지만 %{...%}, 그렇지 않습니다 $fg[blue].

$ autoload colors
$ colors
$ echo $#fg[blue]
5

이것은 5자의 긴 시퀀스이지만 터미널로 전송되면 전경색만 변경하고 커서를 오른쪽으로 5열로 이동하지 않지만 사용자가 이를 지정하지 않았기 때문에 라인 편집기는 이를 잘못 해석합니다. 예를 들어 커서를 이동하려고 하면 커서가 어디에 나타나야 할까요?

여기서는 사용할 수 있지만%{...%}그 주변에서는 $fg[blue]빠른 확장에도 필요하지 않습니다.급속한 확장가지다전경색과 배경색 변경에 대한 특별 지침: %F{colour}%K{colour}( 기본값으로 %f재설정 %k)이므로 다음과 같아야 합니다.

PROMPT='[%n]%F{blue}[%m]%F{white}$(git_custom_status)[%~]%f%B$%b '

또한 promptsubst옵션이 활성화되어 있고 git_custom_status명령이 출력하는 내용이 유효한 프롬프트 문자열이라고 가정합니다.

관련 정보