[업데이트]윈도의 gVim의 한글 폰트 설정 문제 2

원글을 처음 작성했을 때는 vim의 버전이 7.2였는데, 7.3버전의 vim을 쓰면서 encoding 설정값을 utf-8로 바꾸면 메뉴와 각종 메시지들이 깨져서 보이는 대참사를 겪는 문제가 있었다. 따라서 이 글의 원래 내용은 이 문제를 ‘시간차’로 피하고자 하는 꼼수였는데 보다 다른 방법으로 해결해 보고자 한다.

기존의 방식은 encoding의 값을 utf-8로 지정한 후 guifont 속성과 guifontwide속성을 사용해 영문과 한글에 적용되는 글꼴을 다르게 설정하는 것이었다. 이 때 guifontwide 속성은 인코딩이 utf-8일 때만 작동했고, 문제는 이 설정에서는 vim 7.3에서 메시지가 한글로 나오는 부분이 죄 깨지는 문제가 발생했다. 아울러 상단의 메뉴의 한글도 와장창.

set encoding=utf-8
set guifont=Consolas:h10:cANSI
set guifontwide=Dotumche:h9:cDEFAULT

lang mes en_US

source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim

이상의 내용을 vimrc 파일에 추가한다. 이는 먼저 위에서 설명한대로 encoding값을 utf-8로 설정하고 한글, 영문의 글꼴을 각각 다르게 설정해준다.그런 다음 메시지 언어를 영문으로 변경한다. 물론 영문으로 메시지들이 표시되기는 하지만 아주 어려운 내용들은 아니므로 영어로 보는 것이 편할 것이다.

마지막으로 번역된 (그래서 깨지는) 메뉴를 없앤다음, 디폴트(영문) 메뉴를 다시 추가해준다.

이렇게하면 우리가 (적어도 내가) 원하는 형태로 vim의 글꼴을 설정할 수 있다.

 

지난 글에서 윈도용 gVim에서 한글 폰트와 영문 폰트를 따로 따로 지정하는 법에 대해 설명했는데, 몇 가지 부가적인 설명도 필요하고, 이 팁을 적용하는 경우에 gVim 실행 시 메뉴나 welcome 메시지 등이 깨져서 표시되는 문제가 있어서 추가 포스트로 적어본다.

지난 글에서는 ANSI 문자들에 대해서는 Consolas를 적용하고, 그 외의 글꼴은 돋움체를 설정하는 방법으로 guifont 옵션과 guifontwide 옵션을 사용했는데, guifontwide 옵션은  encoding 옵션이 utf-8 일때만 유효해진다. 그런데 문제는 윈도의 기본 문자 인코딩이 cp949라는 점이다. 따라서 한글과 영문의 글꼴을 따로 따로 표시하고 싶다면 다음의 설정이 모두 세팅되어야 한다.

set encoding=utf-8
set guifont=Consolas:h9:cANSI
set guifontwide=Dotumche:h10:cDEFAULT

그런데 encoding 옵션 값을 utf-8로 지정하면 gVim이 구동할 때 그려주는 메뉴나 welcome 메시지가 모두 깨져서 표시된다. 한가지 다행스러운 점은, 일단 gVim이 cp949 인코딩으로 실행되고 난 후 encoding 옵션을 변경하면 다른 UI 부분은 영향을 받지 않는다는 것이다.

따라서 이 부분은 다음과 같이 autocmd를 사용하여 조정해주어야 한다.

 

 

set encoding=cp949
set guifont=Consolas:h9:cANSI
set guifontwide=Dotumche:h10:cDEFAULT

au BufNew, BufEnter * set encoding=utf-8

즉, gVim이 처음 실행되어 메뉴 등의 UI가 구성될 때에는 윈도의 기본 인코딩을 사용하도록하고, Buffer가 만들어진 이후부터는 UTF-8을 인코딩으로 사용해서 guifontwide 옵션이 활성화될 수 있도록 해주면 된다.

 

 

 

  • joonro

    감사합니다. 덕분에 한글이 gvim에서 잘 나오네요. 🙂

  • jylee

    감사합니다. 덕분에 저도 문제 해결했습니다.

  • 산오리

    핵심은 변수 설정 후 delmenu.vim, menu.vim이군요.
    Lang mes ko_KR.UTF-8로 하면 폰트 설정 없이도 한국어로 잘 나옵니다.