파일을 읽을 때 변환 오류를 무시하도록 vim 얻기

파일을 읽을 때 변환 오류를 무시하도록 vim 얻기

BOM이 포함된 UTF-16 파일이 있습니다. 파일 인코딩을 다음과 같이 설정했습니다.

set fencs=ucs-bom,utf-16le,utf-8,default,latin1    

그러나 한 줄에 한 문자가 있기 때문에 vim은 UTF-16을 자동 감지하지 않으며 기본값은 모든 ^@null 마커와 함께 latin1입니다. vim이 파일을 UCS( :e ++enc=ucs-bom)로 읽도록 강제하면 파일을 성공적으로 읽었지만 "{nn} 줄의 변환 오류"를 보고하지만 해당 문자 외에는 파일의 나머지 부분이 올바르게 변환되었습니다. 잘못된 문자가 제거되면 파일이 올바르게 해석되어 표시됩니다.

어쨌든 vim이 변환 오류를 무시하도록 할 수 있나요? 유효한 BOM이 있을 때마다 인코딩을 강제하는 것은 약간 짜증나는 일입니다.

답변1

변환 오류는 데이터가 손상되었거나 파일을 작성한 후 손상되었음을 의미하므로 이를 무시할 수 있는 전역 설정이 없습니다. 귀하의 경우 이는 단지 하나의 중요하지 않은 문자일 수 있지만 다른 경우에는 전체 파일을 자동으로 쓸모 없게 만들 수 있습니다.

인수 ++bad=...(cp. :help ++bad)를 통해 변환 오류를 억제할 수 있습니다 .:edit++enc=...

모든 변환 오류를 정말로 억제하려면 사용자 정의 :EditBad명령을 작성해야 합니다.

:command! -bar -bang -nargs=* -complete=file EditBad edit<bang> ++bad=? <args>

관련 정보