VIM 한글 깨질 때 해결 방법
목차
Vim 한글 깨짐 현상 원인과 해결 방법
Vim(Vi) 편집기에서 한글이 깨지는 현상은 개발자나 시스템 엔지니어가 흔히 겪는 문제 중 하나다. 이는 대부분 인코딩(Encoding) 설정이 일치하지 않아 발생한다. 문제의 원인을 명확히 이해하고 모든 관련 환경의 인코딩을 UTF-8로 통일하면 이 문제를 근본적으로 해결할 수 있다.
한글 깨짐의 주요 원인
Vim에서 한글이 정상적으로 표시되려면 크게 세 가지 요소의 인코딩 설정이 일치해야 한다. 이 중 하나라도 어긋나면 한글은 깨져 보인다.
- 터미널 환경: 사용자가 Vim을 실행하는 터미널(예: PuTTY, iTerm2, Windows Terminal)의 문자 해석 방식이 UTF-8이 아닌 경우.
- Vim 내부 설정: Vim 편집기가 내부적으로 문자를 처리하고 터미널에 표시하는 인코딩(`encoding`) 설정이 잘못된 경우.
- 파일 자체 인코딩: 편집하려는 파일이 UTF-8이 아닌 오래된 인코딩(예: EUC-KR)으로 저장되어 있고, Vim이 이를 잘못 감지하는 경우.
근본적인 해결 방법 .vimrc 설정
가장 확실하고 근본적인 해결책은 Vim의 설정 파일(~/.vimrc)에 인코딩 관련 설정을 명시적으로 추가하는 것이다. 파일이 없다면 홈 디렉터리에 새로 생성한다.
" --- UTF-8 인코딩 설정 ---
set encoding=utf-8
set fileencoding=utf-8
set fileencodings=utf-8,euc-kr,ucs-bom,latin1
각 설정 항목의 의미는 다음과 같다.
set encoding=utf-8: Vim이 내부적으로 문자를 처리하고 터미널에 표시할 때 사용할 인코딩을 UTF-8로 지정한다. (가장 핵심적인 설정)set fileencoding=utf-8: 새 파일을 생성하거나 기존 파일을 저장할 때 사용할 기본 인코딩을 UTF-8로 지정한다.set fileencodings=utf-8,euc-kr,...: 기존 파일을 열 때 자동으로 감지할 인코딩 순서를 지정한다.utf-8을 먼저 시도하고, 실패 시euc-kr(오래된 한글 파일) 등을 시도하여 호환성을 높인다.
추가 확인 및 조치 사항
.vimrc 설정만으로 문제가 해결되지 않는다면, Vim 외부의 환경을 점검해야 한다.
- 터미널 및 SSH 클라이언트 확인
- PuTTY 사용 시: [Window] > [Translation] 설정에서 'Remote character set'을 'UTF-8'로 변경한다.
- 시스템 로케일(Locale) 확인: 터미널에서
locale명령어를 실행했을 때,LANG이나LC_ALL값이ko_KR.UTF-8과 같이.UTF-8로 끝나야 한다.
- 파일 인코딩 강제 변환
- 파일이 이미 깨져 보인다면, 인코딩을 명시하여 다시 열 수 있다. (예:
:e ++enc=euc-kr) - 오래된 EUC-KR 파일을 UTF-8로 변환하려면, 위 명령어로 파일을 정상적으로 연 후
:set fileencoding=utf-8을 실행하고 저장(:w)한다.
- 파일이 이미 깨져 보인다면, 인코딩을 명시하여 다시 열 수 있다. (예:
- 원격 서버 환경 점검
- SSH로 접속한 원격 서버 자체에 한글 로케일이 설치되어 있는지
locale -a명령어로 확인한다.
- SSH로 접속한 원격 서버 자체에 한글 로케일이 설치되어 있는지
요약
Vim의 한글 깨짐은 인코딩 불일치가 근본 원인이다. [터미널], [Vim 내부], [파일]의 세 가지 요소의 인코딩을 모두 UTF-8로 통일하는 것이 핵심이다. .vimrc 설정을 가장 먼저 적용하고, 문제가 지속되면 터미널 클라이언트와 시스템 로케일 설정을 차례로 점검하여 해결할 수 있다.
댓글
댓글 쓰기