답변:
파일 인코딩 설정은 현재 버퍼의 인코딩을 보여줍니다.
:set fileencoding
fileencoding=utf8
일반 텍스트 파일의 인코딩을 결정하는 일반적인 방법은 없습니다. 인코딩을 나타내는 BOM이라고하는 UTF-8 파일을 제외하고는 정보가 파일 자체에 저장되지 않기 때문입니다. 이것이 xml 및 html 파일에 문자 세트 메타 태그가있는 이유입니다.
'인코딩'설정으로 특정 인코딩을 시행 할 수 있습니다. 보기 :help encoding
및 :help fileencoding
편집기는 이러한 설정을 처리하는 방법에 대한 빔한다. vimrc에 여러 파일 인코딩 설정을 추가하여 vim이 나열된 설정을 기반으로 검색을 시도 할 수도 있습니다.
파일의 인코딩은 파일의 어느 곳에서나 명시 적으로 언급되지 않습니다 . 따라서 VIM 및 기타 응용 프로그램은 인코딩을 추측해야합니다. 이를 수행하는 정식 방법은 chardet
응용 프로그램을 사용하는 것이며 VIM 내에서 다음과 같이 실행할 수 있습니다.
:!chardet %
jtimberman이 제공 한 답변은 현재 버퍼 의 인코딩을 보여 주며 이는 디스크의 파일과 동일한 인코딩이 아닐 수 있습니다. 따라서 chardet
VIM이 항상 특정 인코딩 (예 : UTF-8)을 사용하도록 구성된 경우 VIM과 다른 인코딩이 표시되는 경우가 있습니다.
좋은 점은 chardet
추측에 대한 신뢰 점수를 제공하는 반면 VIM은 \ x7F (ASCII 127)보다 많은 문자가없는 경우 인코딩을 추측하는 데 잘못 사용될 수 있다는 것입니다. 예를 들어, 하나를 추가하는 א
PHP 코드의 긴 파일은 만드는 chardet
파일이라고 생각 ISO-8859-2
약간 긴 문구를 추가하는 반면, 0.72의 신뢰와 שלום, עולם!
UTF-8 0.99의 신뢰 점수를 제공합니다. 두 경우 모두 set fileencoding?
보여 주었다 UTF-8
디스크에있는 파일이 UTF-8 때문에 아니지만, VIM은 내부적으로 UTF-8을 사용하도록 구성되어 있기 때문이다.
chardet <file>
. 외부에서 수행하는 것이 좋습니다 . 여전히 좋은 제안입니다.
나는 그것을 발견했다 : https://vim.fandom.com/wiki/Reloading_a_file_using_a_different_encoding
Vim이 올바른 인코딩을 감지하지 못한 경우 다른 인코딩을 사용하여 파일을 다시로드 할 수 있습니다.
:e ++enc=<encoding>
어디 encoding
있을까cp850, ISO-8859-1, UTF-8, ...
dotancohen이 제안한대로 file yourfilename
인코딩을 찾거나 Linux 배포판에서 chardetect
제공 python-chardet
하거나 uchardet
Linux 배포판에 따라 사용할 수 있습니다 .