SourceTree는 .vimrc가 바이너리라고 생각합니다.


0

SourceTree는 .vimrc가 바이너리라고 생각하여 윈도우 내에서 diff를 볼 수 없습니다.

기준 이 페이지 , 나는 그것이 인코딩 때문에, 그래서 UTF - 8로 다음 단계를 사용하여 인코딩을 변경 시도했다 줄 알았는데 이 페이지 :

:set bomb
:set fileencoding=utf-8

그러나 그것을 수정하지는 못했습니다. 내가 무엇을해야 하나?

[업데이트] 해결 :

Vim에는 전혀 보이지 않았지만 Sublime Text에서 "DC3"으로 렌더링 된 비 ASCII 문자 (장치 컨트롤 3, 0x13)가있었습니다. 삭제 한 후에 문제가 해결되었습니다! 모든 도움에 감사드립니다.


파일에 "어려운"이스케이프 시퀀스가 ​​있습니까?
Heptite

너는 의미한다. \" 파일 어딘가에? 아니, 그 중 하나도 없어.
EthanP

아니, 그게 내 뜻이 아니야. 나는 이스케이프 (0x1B) 또는 공백 아래의 ASCII 테이블에있는 문자 (즉, 0x20보다 낮은 모든 문자)와 같은 실제 제어 문자를 의미합니다.
Heptite

내가 아는 한에서는 아니다
EthanP

답변:


0

BOMB 옵션을 해제하십시오. (Byte Order Mark Bytes)

엔디안을 나타 내기 위해 텍스트 파일의 시작 부분에 2 바이트를 추가합니다. 그들은 0xFF & amp; 0xFE, 어떤 순서인지 잊어 버렸지 만 VCS가 .vimrc가 바이너리 파일이라고 생각하는 이유입니다.

.vimrc를 편집 한 다음, 폭탄 옵션을 끄고 .vimrc를 저장해야합니다. 이 할까요 BOM 바이트를 제거하십시오. 최악의 경우, .vimrc 파일에서 BOMB 옵션을 재설정 / 제거한 다음 vim의 바이너리 모드를 사용하여 딱딱한 바이트를 제거하십시오.

# edit .vimrc
$ vim .vimrc
# remove / comment out the set BOMB line
# reset the BOMB option (:set nobomb)
# save file, exit vim

BOM 바이트가 사라지면 (파일 사용), 끝났습니다. 커밋하고 즐기십시오. 그렇지 않은 경우 :

# remove the BOMB bytes using binary mode
$ vim -b .vimrc
# save and exit, .vimrc should no longer have the BOMB bytes.

또한 'file'명령은 파일에 BOMB 바이트가 있는지 여부를 알려줍니다.

vim과 함께 제공되는 'xxd'명령을 사용하여 파일의 16 진수 바이트를 볼 수도 있습니다.

xxd .vimrc | head

BOM 바이트가 존재하는지 여부를 보여 주어야합니다. (그것은 많은 것들을 위해 아주 편리합니다)


고마워,하지만 BOMB 바이트가없는 것 같습니다 : xxd .vimrc | head = & gt; 0000000: 224e 756d 6265 7273 0a73 6574 206e 756d "Numbers.set num 나는 문제가 그것이라고 생각한다. charset=binary,하지만 어떻게 그 일을 그만 둘지 모르겠다. 새 파일에 복사 / 붙여 넣기를 시도하고 저장했지만 새 파일에 있습니다. charset=binary 너무.
EthanP

1
흠, 바이너리 / 텍스트를 결정하는 대부분의 프로그램은 수백 또는 수천 바이트를 스캔하여 결정을 내리는 경향이 있습니다. .vimrc에 UTF-8 문자가 있습니까? 내 listchars 설정에서 깔끔한 기호를 사용합니다. UTF-8은 비트 7 세트 (0x80 - 0xFD)로 바이트로 표시되기 때문에 sourcetree의 탐지기가 시작됩니다.
lornix

1
네, Vim에서는 볼 수 없었던 non-ascii 문자 (장치 컨트롤 3, 0x13)가 있었지만 Sublime에서는 "DC3"으로 렌더링되었습니다. 나는 그것을 삭제하고 문제를 해결했다! 모든 도움에 감사드립니다.
EthanP

0

당신 stackoverflow 페이지의 다른 응답을 시도 해 봤나?

vim에서 .vimrc를 열고 다음을 수행하십시오.

:write ++enc=utf-8

고마워,하지만 그걸 시도하고 SourceTree는 여전히 "이진 파일"을 "미리보기가 없다"라고 부른다.
EthanP

vimrc를 gist에 붙여 넣을 수 있습니까? gist.github.com )?
Hettomei

그리고 & lt; & lt; file -I .vimrc & gt; & gt; (터미널에서 할 수 있다면)?
Hettomei


파일 -I .vimrc == & gt; .vimrc : application / octet-stream; charset = 바이너리
EthanP
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.