2014-06-13 4 views
2

oh-my-zsh에서 prezto로 바뀝니다. 이제 다음과 같은 오류에 내가 터미널 창을 열 때마다 실행 한 :zsh에서 터미널 오류 ("... 명령을 찾을 수 없습니다 :^M")

/Users/jasenlew/.zshenv:7: command not found: ^M 
/Users/jasenlew/.zshenv:13: parse error near `\n' 
/Users/jasenlew/.zprofile:7: command not found: ^M 
/Users/jasenlew/.zprofile:11: command not found: ^M 
/Users/jasenlew/.zprofile:80: parse error near `\n' 
/Users/jasenlew/.zshrc:7: command not found: ^M 
/Users/jasenlew/.zshrc:15: parse error near `\n' 
/Users/jasenlew/.zlogin:7: command not found: ^M 
/Users/jasenlew/.zlogin:15: command not found: ^M 
/Users/jasenlew/.zlogin:9: command not found: ^M 
/Users/jasenlew/.zlogin:12: command not found: then^M 
/Users/jasenlew/.zlogin:16: command not found: ^M 
/Users/jasenlew/.zlogin:21: parse error near `\n' 
/Users/jasenlew/.zlogin:zcompile:13: can't open file: /Users/jasenlew/.zcompdump^M^M 
/Users/jasenlew/.zlogin:14: command not found: fi^M 

이미 오 - 내 - zsh을 제거했는지, 그리고 여기의 repo/지침에 따라 prezto를 설치 한 : https://github.com/hackreactor-labs/prezto.

내 Google .gitconfig 파일의 줄을 "autocrlf = true"에서 "autocrlf = false"로 변경하는 등 일부 솔루션을 시도해 보았습니다.

정확하게 처리되지 않는 문자 줄 간격에 대해 뭔가 혼란 스러웠지만 완전히 이해하지 못했으며 해결할 방향이 어둡습니다.

도움을 다시 한번 감사드립니다!

답변

6

/Users/jasenlew/.z* 파일에는 Windows 스타일의 줄 끝 기호가 있습니다.이 줄 끝 기호는 zsh에서 인식하지 못합니다.

Windows 스타일 텍스트 파일의 줄 끝은 CR-LF 쌍으로 표시됩니다. CR (캐리지 리턴)은 종종 ^M (Ctrl-M)으로 표시됩니다.

UNIX 스타일의 텍스트 파일은 라인 끝이 LF (라인 피드) 문자로 표시됩니다.

zsh는 UNIX 스타일의 줄 끝을 가정하고 줄의 끝에 ^M 문자로 CR-LF 쌍을 처리합니다.

Windows 스타일의 줄 끝을 제거하기 만하면됩니다.

dos2unix이 설치되어 있다면이를 사용할 수 있습니다. 맨 페이지를 반드시 읽으십시오. 대부분의 텍스트 필터와 달리 기본적으로 입력 파일을 바꿉니다.

아니면 예를 들어 tr 사용할 수는 :

tr -d '\r' <filename> filename.tmp 
# check filename.tmp to make sure it's correct 
mv filename.tmp filename 

당신은 또한 당신이 가지고있는 파일의 종류를 결정하기 위해 file 명령을 사용할 수 있습니다. 100 % 신뢰도는 아니지만 주어진 파일에 어떤 종류의 줄 끝이 있는지를보고합니다.

일단 줄 끝을 수정하면 파일을 다시 Git 저장소로 확인한 다음 계속 확인해 볼 수 있습니다.

(당신은 또한 당신의 .gitconfig 설정을 조정할 수도 있습니다. 기본 설정 확인해야한다. 난 내 머리 위로 떨어져 세부 사항을 알고하지 않습니다.)

+0

최고 키스! 정말 고마워!! 매력처럼 일했습니다! – jasenlew

관련 문제