oh-my-zsh 구성에서 커서가 텍스트와 동기화되지 않는 특이한 문제가 발생했습니다. (저는 주로 직장에서 screen
이것을 사용합니다 konsole
.
예를 들어, 새 터미널 라인에서는 프롬프트에 아무것도 입력되지 않고 몇 초 후에 아무 이유 없이 커서가 앞으로 이동합니다. 마치 유령이 그러는 것처럼 큐의 시작 위치가 앞으로 이동하는 것과 같습니다.
또 다른 기능은 첫 번째 커서 위치로 백스페이스할 수 없고 해당 위치의 문자로 백스페이스할 수 없다는 것입니다.
제가 보기에는 커서의 시각적 위치와 표시된 텍스트가 편집 중인 텍스트의 물리적 버퍼 내의 실제 위치와 일치하지 않는 것 같습니다.
예를 들어. help
터미널에 입력한 다음 위쪽 화살표 키를 사용하여 이전 명령을 가져왔다고 가정해 보겠습니다 help
. 어떤 일이 일어나고 있는 것 같고 결과적으로 백스페이스를 하면 여전히 표시되는 위치 help
로만 백스페이스할 수 있습니다 . 실제로 물리적으로 버퍼의 전체 단어 가 지워집니다. 그래서 다시 입력하려고 하면 화면이 나오겠지만 엔터를 누르면 명령이 실행됩니다. 하지 않을 것이다 .e
h
help
help
hhelp
help
hhelp
루트 계정에서만 발생하지만 루트 및 최종 사용자에 대해 동일한 설정을 사용하고 있다고 확신합니다.
최종 결과는 abcde
화면에서 백스페이스를 사용 하는 것 보다 백스페이스를 누르고 머무를 c
가능성이 더 높다는 것입니다 .b
acde
abde
어떤 아이디어가 있나요?
고쳐 쓰다:
리뷰와 관련된 추가정보입니다.
내 팁은 %{%f%b%k%}$(build_prompt)
일반 계정과 님의 계정 root
이 동일하다는 것입니다. 하지만 문제는 root
계정 에서만 발생합니다 .
답변1
나는 oh-my-zsh에서 이 문제에 직면했고 docker
다음 줄로 해결했습니다 Dockerfile
.
RUN sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && \
locale-gen
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
호스트 컴퓨터에서 직접 실행하는 경우 해당 단계의 단계를 수행 RUN
하고 export
환경 변수 내보내기를 사용해 보세요.
변경 사항을 영구적으로 적용하려면 ~/.zshrc
.
이것이 작동하는지 테스트하려면 다음을 수행하십시오.
print -l -- '+--+' '|\u26A1|' '+--+'
다음을 표시해야 합니다.