Vim에서 인코딩 및 파일 인코딩을 utf-8로 설정


95

이 두 명령의 차이점은 무엇입니까?

  • set encoding=utf-8
  • set fileencoding=utf-8

utf-8을 사용하려면 둘 다 설정해야합니까?

또한 set또는로 파일 인코딩을 설정해야 setglobal합니까?


유니 코드가 아닌 파일을 편집 할 경우를 대비하여 Vim에서 인코딩을 강제하는 대신 LOCALE에서 인코딩을 설정하는 것이 더 안전합니다. LOCALE로 기본 설정되는 것과 동일한 결과를 얻을 수 있으며 만난 경우 외국 문자를 엉망으로 만들지 않습니다.
timss 2013 년

답변:


89

TL; DR

첫 번째 경우 에는 터미널에 표시 되는 set encoding=utf-8출력 인코딩을 변경합니다 .

두 번째 경우에는 작성된set fileencoding=utf-8 파일의 출력 인코딩을 변경합니다 .

@Dennis가 말했듯이 항상 .vimrc에서 작업하려면 ~ / .vimrc에서 둘 다 설정할 수 있습니다 utf-8.

자세한 내용은

로부터 유니 코드 사용에 대한 VIM의 위키

" vim이 내부적으로 문자를 표현encoding 하는 방법을 설정합니다 . Utf-8은 대부분의 유니 코드 버전에 필요합니다."

" 특정 파일에 대한 인코딩을fileencoding 설정 합니다 (로컬에서 버퍼로). : setglobal은 기본값을 설정합니다. 빈 값도 사용할 수 있습니다. 기본값은 '인코딩'과 동일합니다. 또는 ucs 인코딩 중 하나를 설정할 수도 있습니다. 특정 문자 조합에 따라 동일한 디스크 파일을 더 크거나 작게 만들 수 있습니다. 또한 IIUC, utf-8은 항상 빅 엔디안 (하이 비트 우선)이고 ucs는 빅 엔디안 또는 리틀 엔디안 일 수 있습니다. 그것을 사용하면 아마도 '폭탄'을 설정해야 할 것입니다 (아래 참조). "


3
이해가 안 돼서 미안 해요. 파일 인코딩이 더 정확하게하는 것은 무엇입니까?
Kiraly Zoltan 2013 년

25
첫 번째 경우에는 터미널에 표시되는 출력 인코딩을 변경합니다. 두 번째 경우에는 작성된 파일의 출력 인코딩을 변경합니다.
Adrien Lacroix

1
+1 공식 문서를 반복하는 대신 짧고 달콤한 대답을 위해! :)
425nesp

필요한 경우 명령 줄에서 직접 임시 vim -c "set encoding=utf-8" file.ext.
Hans Ginzel

87
set encoding=utf-8  " The encoding displayed.
set fileencoding=utf-8  " The encoding written to file.

~/.vimrc항상 utf-8로 작업하려면 둘 다 설정하는 것이 좋습니다.


0

.vimrc에서 'fileencodings'변수를 설정할 수 있습니다.

이것은 기존 파일 편집을 시작할 때 고려되는 문자 인코딩 목록입니다. 파일을 읽을 때 Vim은 처음 언급 한 문자 인코딩을 사용하려고합니다. 오류가 감지되면 목록의 다음 오류가 시도됩니다. 작동하는 인코딩이 발견되면 'fileencoding'이 이에 설정됩니다. 모두 실패하면 'fileencoding'이 빈 문자열로 설정되어 'encoding'값이 사용됩니다.

보다 :help filencodings

예를 들어 cp1252로 자주 작업하는 경우 여기에 추가 할 수 있습니다.

set fileencodings=ucs-bom,utf-8,cp1252,default,latin9
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.