저는 iTerm2, zsh 5.7.1 및 oh-my-zsh(robbyrussell 테마)와 함께 macOS 10.15.2를 사용하고 있습니다.
프롬프트 인쇄가 bash에 비해 약간 느린 것으로 나타났습니다. 예를 들어 를 누르면 enter커서는 처음에 다음 줄의 시작 부분으로 이동한 다음 잠시 후 쉘 프롬프트가 나타나고 커서가 원래 위치로 이동합니다. 예를 들어, → ~
홈 폴더에 있을 때 나타나는 프롬프트이고 []
커서인 경우 Enter 키를 누르면 다음이 표시됩니다.
0 - 유휴 상태
→ ~ []
1 - 누른 직후enter
[]
2 - 유휴 상태로 돌아가기
→ ~ []
이러한 속도 저하는 Enter 키를 여러 번 빠르게 누를 때 특히 두드러집니다. 이 경우 빈 줄이 몇 개 보입니다. 이것이 내가 보는 것입니다
→ ~
→ ~
→ ~
→ ~
→ ~
→ ~
→ ~
→ ~
→ ~ []
나는 bash 쉘에서 왔으며 bash를 사용할 때 그렇게 느리지는 않습니다. 이것이 oh-my-zsh의 문제인지 자연스러운 동작인지 잘 모르겠습니다. 이 문제와 궁극적으로 해결하는 방법에 대해 자세히 알아보고 싶습니다. 감사해요.
폴리스티렌: 문제는 oh-my-zsh에서 발생합니다. 모든 플러그인을 비활성화해도 여전히 존재합니다.
폴리페닐렌 설파이드: 이전에 SO에 이 질문을 게시한 적이 있습니다. 감사해요사용자 1934428그의 도움과 이 질문을 여기로 옮기자고 제안해 주셔서 감사합니다.
답변1
oh-my-zsh가 기본적으로 프롬프트에 무엇을 입력하는지 모르겠습니다. 아마도 매우 인기 있는 프롬프트 구성 요소이며 시간이 많이 걸릴 수 있는 버전 제어 상태를 식별하려고 할 수도 있습니다.
무슨 일이 일어나고 있는지 보려면 다음을 사용하여 명령 추적을 켜십시오.set -x
.
→~ →~세트-x 프롬프트를 계산하기 위해 실행되는 추적 명령 →~ 프롬프트를 계산하기 위해 실행되는 추적 명령 →~세트+x +zsh:3> 세트+x →~ →~
추적이 너무 길어서 화면 밖으로 스크롤되는 경우 파일로 리디렉션하세요.
exec 2>zsh.err
이렇게 하면 추적뿐만 아니라 모든 오류 메시지가 파일로 전달됩니다. 터미널에서 추적 및 오류를 얻으려면 다음을 실행하십시오.
exec 2>/dev/tty
추적 형식을 사용자 정의할 수 있습니다.PS4
. 이는 다음을 포함할 수 있는 형식 문자열입니다.빨리 탈출해라. 예를 들어 정확한 타이밍 정보를 추가하려면 다음을 수행하세요.
PS4='%D{%s.%9.}+%N:%i> '
답변2
git 디렉토리가 더러운지 확인하면 지연이 발생하는 것 같습니다.
셸 응답 속도를 높이려면 터미널에서 실행하여 디렉터리가 더러워졌는지 확인하는 기능을 비활성화하세요.
git config --add oh-my-zsh.hide-dirty 1
모든 쉘을 다시 시작하는 것을 잊지 마십시오.
답변3
나도 같은 문제에 직면했고 이것이 git_prompt_info
쉘 속도가 느려진 이유였습니다. 일부 oh-my-zsh 테마는 프롬프트에서 일종의 "하드코딩된" git 플러그인을 사용합니다.
따라서 이 명령을 사용하여 얻을 수 있는 목록 중 하나를 고려하십시오.
grep --files-without-match "git" ~/.oh-my-zsh/themes/*
답변4
내 노트북에서 이 문제를 해결하고 ~/.oh-my-zsh 폴더로 이동하여 git pull
약 1200개의 커밋이 보류 중이었습니다. 그런 다음 iTerm을 닫았다가 다시 엽니다. oh-my-zsh가 업데이트 중이라는 알림을 받게 됩니다.