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가 아닌 다른 터미널 시뮬레이터에서도). 그리고 모든 것이 좋은 것 같습니다. 그래서 지금은 모든 것이 좋습니다.대단히 감사합니다

좋은 웹페이지 즐겨찾기