포스트

Vim에서 파일 인코딩 다루기 — :e ++enc과 fileencoding

euc-kr·utf-8 등 다른 인코딩 파일을 vim에서 정확히 읽고 저장하는 방법

Vim에서 파일 인코딩 다루기 — :e ++enc과 fileencoding

vim은 파일을 열 때 인코딩을 추정한다. 추정이 빗나가면 한글이 깨져 보이거나 저장이 잘못된다.

표시 인코딩 강제 변경

이미 연 파일을 다른 인코딩으로 다시 읽는다.

1
2
:e ++enc=utf-8
:e ++enc=euc-kr

깨져 보이던 파일이 제대로 표시되면 그 인코딩이 맞다.

저장 인코딩 변경

저장될 파일의 인코딩을 바꾼다.

1
2
:set fileencoding=utf-8
:w

읽기 인코딩과 저장 인코딩이 다르면 변환되어 저장된다. euc-kr 파일을 열어 utf-8로 저장하면 변환되어 들어간다.

자동 추정 순서 설정

fileencodings는 vim이 파일 인코딩을 시도하는 순서다. 위에서 아래로 시도하다 디코딩이 성공하면 멈춘다.

1
set fileencodings=ucs-bom,utf-8,euc-kr,latin1

한국어 환경에서는 euc-kr을 포함시켜 둔다. 안 들어 있으면 euc-kr 파일이 latin1로 잘못 해석되어 한글이 깨진다.

관련 옵션

옵션의미
encodingvim 내부 작업용 인코딩 (보통 utf-8)
fileencoding현재 버퍼의 디스크 인코딩
fileencodings읽을 때 시도 순서
termencoding터미널 입출력 인코딩
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.