Windows에서 잘못된 파일 형식 설정
3982 단어 vim-fugitive
묘사
저는 Windows 7의 Gvim 7.3에서 탈주범을 사용했습니다.autocrlf=false
의 저장소에서 우리는 저장소에서 CRLF를 사용해서 끝냅니다.Squisite가 색인 버퍼를 열 때 (예: 통과 :Gdiff
를 설정했습니다. 이것은 큰 블록을 추가하거나 리셋할 때 차이가 약간 혼란스러워질 수 있음을 의미합니다.이것은 이미 알고 있는 문제입니까? 아니면 제가 탈주범에게 정확하게 등록할 해결 방법이 부족합니까?ff=unix
누가 있다고 처음 들었어토론 #1
.나는 어떤 적당한 조치를 취해야 할지 그다지 확실하지 않다.나는 간단한 해결 방법이autocrlf=false
문제 버퍼에 있다고 생각한다.만약 당신이 이렇게 한다면, 버퍼를 바꾸고 그것을 쓰면, 파일이 정확하게 임시 저장됩니까?set ff=dos
네, 잘 처리되었습니다. 토론 #2
그리고 색인 버퍼에 썼습니다. 색인에 변경 사항이 기록되지 않았습니다. 그리고 정상적인 차이 처리는 예상대로 진행되었고 빈칸이 혼란스럽지 않았습니다.이것은 내가 패치를 연구하여 자동으로 설정할 가치가 있습니까?
set ff=dos
응, 문제는 토론 #셋
가 없는 사람에게는 모든 게 파괴되는 거 아니야?이것은 더욱 흔히 볼 수 있는 설정이다.만약 네가
autocrlf=true
를 쓰지 않고 버퍼에 쓰지 않는다면, 나는 이것이 각종 파괴를 초래할 것이라고 생각한다. 그렇지?set ff=dos
운행토론 #4
.테스트한 파일 형식은 무엇입니까?txt?git cat-file blob HEAD:somefile.txt > test.txt
토론 #5
ff=dos
토론 #6
autocrlf 설정을 감지할 수 있는 패치가 있는지 알고 싶습니다. 맹목적으로dos로 설정하는 것이 아니라---우리는autocrlf=false
를 어떤 불행한 역사적 결과로 사용한다.모든 윈도우즈 샵->git svn을 사용하여 일정 시간 변환->변환할 때 진행 중인 모든 작업을 파괴하거나 다시 쓰기를 원하지 않습니다.나에게 있어서 수동으로 형식을 설정하는 것은 불가능한 것이 아니다. (내가 아는 바에 의하면, 나는vi/survious를 사용하는 유일한 사람이다.) 만약 그것을 감지할 수 없다면, 이것은 불행한 데이터 중단일 뿐이다. (나는 자주 그것을 잊어버릴 것이라고 보장한다.)토론 #7
설정을 검사할 수 있습니다.불행하게도, 매번 윈도에서 외부 명령을 실행할 때마다, 백엔드에서 어리석은 DOS 상자가 나오기 때문에, 나는 가능한 한 이것을 최소화하려고 한다.그 밖에 추가 코드의 복잡성도 있다.기본적으로, 역사 버퍼 ((source) 를 편집할 때, 도주범은 이렇게 한다.
1. 메모리
git config --get core.autocrlf
를 읽는다. git cat-file
.2. 임시 파일에 쓰기:
let contents = system("git cat-file ...")
.3.
call writefile(split(contents, "\n", 1), filename, 'b')
를 사용하여 버퍼 이름을 임시 파일의 이름으로 임시로 변경합니다.4.
:file
를 사용하여 다시 로드합니다.5. 버퍼 이름을 다시 변경합니다.
도주범이 한 일은 도주범을 버리는 것 같다.그러나 내가 이 다섯 단계를 수동으로 집행했을 때, 나는 마침내 버퍼링 구역
:edit
을 얻었다.직접 해보실래요?git cat-file
사실, 내가 너에게 말했지, 네가 정말로 임시 저장 파일ff=dos
을 보고 있을 때, 제출한 블로그토론 #8
에서 테스트를 해야 한다고.그러니까 검사도 해봐.HEAD:somefile.txt
메모리에 :somefile.txt
만 쓰고 다시 쓰기만 하면 버퍼토론 #9
cat-file
가 쓰여집니다ff=unix
로 버퍼를 :file
로 변경하면 버퍼는 ff=dos
로 유지되지만 다시 로드하면 버퍼가 ff=unix
됩니다.마찬가지로, 만약 내가 단지 읽고 다시 쓴 후에 디스크의 임시 파일로 새로운 버퍼를 열면 ff=unix
.아마도 gvim이 "\n"
를 대하는 방식이 다를 것이다.토론 #10
ff=dos
마찬가지로 git cat-file blob :README > foo
토론 #11
에게도 조건이 정확하지 않다. 비엠의 윈도 버전만으로는 부족할 것으로 추정되지만 기존의 버퍼가ff=dos
였으면 좋겠다.또한vim에 어떤 매핑 함수가 있다면 복제와 추가 조건 지점은 삭제될 수 있지만, 마찬가지로 엉망인 것은fu입니다.
나는 아침(미국 동부 시간)에 다시 한 번 보겠지만, 만약 당신이 한눈에 이런 방법의 어떤 하이라이트를 볼 수 있다면, 나는 어떤 지도에도 매우 감사할 것이다!
토론 #12
이 코드는 위험으로 가득 차 있다.aaf5b34366138dff810565446e640cb4b8476a7f와 216c85afe0a3d3b57dc717c098334fd59afeb13e를 참고하여 이 시리즈의 초기 버전을 이해하십시오.더 좋은 방법은 aaf5b34366138dff810565446e640cb4b8476a7f에서 시작하여 서로 다른 방식으로 이를 조정하여 최초의 문제를 해결하는 것이라고 생각합니다.나는 항상 파일을 메모리에 불러오는 것은 단지 그것을 디스크에 쓰기 위해서라고 생각한다.토론 #13
해봐autocrlf branch.맙소사!토론 #14
당신은 영웅입니다. 그렇습니다.셸을
cmd
과 일치시키는 것은 좀 취약할 수 있다고 생각하지만, ps 환경과git bash에서 시도해 보았습니다. 어느 곳에서도 문제가 없습니다. (cmd.exe가 아닌 다른 터미널 시뮬레이터에서도). 그리고 모든 것이 좋은 것 같습니다. 그래서 지금은 모든 것이 좋습니다.대단히 감사합니다
Reference
이 문제에 관하여(Windows에서 잘못된 파일 형식 설정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://github.com/tpope/vim-fugitive/issues/99텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)