태그 보관물: vi

[업데이트]윈도의 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 옵션이 활성화될 수 있도록 해주면 된다.

 

 

 

윈도용 gVim의 폰트 설정 문제

윈도용 gVim을 쓸 때 개인적으로 가장 싫었던(?)점은 다름 아닌 폰트 문제였다. 영문 글꼴의 가독성 때문에 고정폭 폰트인 Courier나 Consolas등을 쓰면 한글이 보기 싫은 모양으로 표시되고, 그렇다고 돋움체를 쓰자니 대문자 I와 소문자 l이 구분이 잘 되지 않는 등의 문제가 있다. 그래서 오늘은 추석 특집(?)으로 윈도용 gVim에서 한글과 영문의 글꼴을 따로 따로 설정하여 보기 좋은 화면을 만들 수 있는 팁을 공개하고자 한다.

보통 별다른 설정을 하지 않는다면 gVim의 폰트는 시스템 기본 폰트인 굴림[1. 실제로는 콘솔 기본 폰트인 Fixdays로 표시되는데, 이에 대응하는 굴림으로 한글이 표시되는 것이다.]으로 표시된다. 개인적으로 굴림은 가장 싫어하는 글꼴 중 하나이다.

 

 

이 때 guifont 세팅을 바꾸면 글꼴을 바꿀 수 있다. 아래 명령은 글꼴을 돋움체로 바꾸고, 크기는 10으로 한다.

:set guifont=Dotumche:h10:cHANGUL

하지만 돋움체에 영문자도 포함되어 있어서 영문 글꼴도 함께 돋움체로 표시된다. 개인적으로 선호하는 폰트인 Consolas를 쓰자니 다시 한글이 문제가 된다. 아래 명령으로 글꼴을 Consolas로 다시 바꾸자.

:set guifont=Consolas:h10:cHANGUL

Consolas는 serif 계열의 폰트인데, 한글을 표시해야 하는 경우에는 해당 폰트에 한글 글자 모양이 없으므로, 시스템은 자동적으로 “기본 serif”인 바탕체를 사용한다. 물론 한글에는 Serif라는 개념이 없는데 보통은 바탕/돋움으로 획 끝이 구부러지는 여부를 나눈다. [1. 명조/고딕이라는 표현도 있지만, 이건 일본식 용어라고 한다.]

다시 원하는 결과를 얻기 위해서는 아래의 명령을 모두 사용한다.

:set guifont=Consolas:h10:cANSI
:set guifontwide=Dotumche:h10:cDEFAULT

이제 한글은 돋움체로, 영문은 Consolas로 표시되는 말끔한(?) 화면을 즐길 수 있다.

위 명령에서 h10 은 글자의 높이(크기)를 설정하는 부분이며, 이 값을 바꾸면 한글과 영문자의 글자 크기를 달리 표시할 수도 있다.