VIM의 기본 인코딩을 UTF-8로 설정하려면 어떻게해야합니까? VIM 7.3을 사용하고 있습니다. .po

번역 된 문자열을 제공하는 오픈 소스 프로젝트에 기여하고 싶습니다. 요구 사항 중 하나는 제공자가 PO 파일의 인코딩으로 UTF-8을 사용해야한다는 것입니다.

Linux에서 VIM 7.3을 사용하고 있습니다. .po 파일을 올바르게 편집하고 저장할 수 있도록 VIM의 인코딩이 UTF-8로 설정되어 있는지 어떻게 확인할 수 있습니까?



답변

Vim은 기존 파일을 읽을 때 파일 인코딩을 감지하려고합니다. 파일을 작성할 때 Vim은 감지 한 파일 인코딩을 사용합니다 (다른 방식으로 말할 때 제외). 따라서 UTF-8로 탐지 된 파일은 UTF-8로 작성되고 Latin-1로 탐지 된 파일은 Latin-1로 작성됩니다.

기본적으로 탐지 프로세스는 조잡합니다. Vim으로 연 모든 파일은 맨 위에서 유니 코드 바이트 순서 표시를 감지하지 않는 한 Latin-1로 간주됩니다. 바이트 순서 표시가없는 UTF-8 파일은 멀티 바이트 문자가 단일 문자 대신 문자 시퀀스로 버퍼에 표시되므로 편집하기가 어렵습니다.

최악의 경우, Vim은 기본적으로 Latin-1을 사용하여 버퍼의 텍스트를 나타냅니다. 따라서 바이트 순서 표시가 있는 UTF-8 파일 Latin-1로 다운 변환하여 손상됩니다.

해결책은 내부적으로 UTF-8을 사용하도록 Vim을 구성하는 것입니다. 사실 이것은 Vim 문서에서 권장되는 것이며 Vim이 기본적으로 Latin-1 편집기로 작동 할 것으로 기대하는 사용자들 사이에서 혼란을 피하는 것입니다.

에서 Vim을 .vimrc추가 set encoding=utf-8하고 다시 시작하십시오.

또는 LANGUTF-8이 선호하는 문자 인코딩임을 나타내도록 환경 변수를 설정하십시오 . 이것은 Vim뿐만 아니라 LANG텍스트를 어떻게 표현해야 하는지를 결정하는 소프트웨어에도 영향을 미칩니다 . 예를 들어, en미국에서 사용 US되는 UTF-8 ( utf-8) 로 인코딩 된 텍스트가 영어 ( )로 표시되도록 하려면을 설정하십시오 LANG=en_US.utf-8.

이제 Vim은 UTF-8을 사용하여 버퍼의 텍스트를 나타냅니다. 또한 파일에서 UTF-8 인코딩을 감지하기 위해 더 많은 노력을 기울일 것입니다. 바이트 순서 표시를 찾는 것 외에도 라틴 순서로 돌아 가기 전에 바이트 순서 표시가없는 UTF-8도 검사합니다. 따라서 더 이상 UTF-8로 코딩 된 파일이 손상되지 않으며 편집 세션 중에 UTF-8 문자를 올바르게 표시해야합니다.

Vim이 파일 인코딩을 감지하는 방법에 대한 자세한 내용 은 Vim 설명서
fileencodings옵션을
참조하십시오 .

Vim이 내부적으로 사용하는 인코딩 설정에 대한 자세한 내용 encoding
옵션을
참조하십시오 .

다시 디스크에 파일을 기록 할 때 사용되는 인코딩을 무시해야하는 경우, 참조
옵션을
.fileencoding


답변

vimdoc 에 따르면 vim은 파일 인코딩을 자동으로 감지하려고 시도하므로 기존 파일 을 편집 하는 것이 좋습니다.

로 원하는 경우 언제든지 인코딩을 강제 할 수 있습니다 :set fileencodings=utf-8. 여기 에서 설명서를 찾을 수 있습니다 .