2011년 2월 19일 토요일

[Vim] OS 별 Vim 설정을 분리하기(?)

난 Linux, Mac OS X, Windows7을 주로 이용한다. 크게 두 가지 계열의 OS로 나뉘게 되겠네. Unix 계열과 윈도우 계열로.

그런데 Unix계열에선 터미널로, 윈도우에선 GVim이라는 독자GUI가 있는 버전을 이용한다.

이렇게 되면 설정을 좀 골치아프게 해야 할지도 모른다. GUI버전은 폰트라던가 색상을 별도로 설정할 수가 있기에 사용자의 기호에 따라 터미널과는 다른 별도의 설정이 필요할지도 모른다. 만약 터미널 버전에서 윈도우GUI전용 설정을 해 놓으면 설정파일을 읽을 때 에러가 날 것이다.

물론 처리할 수 있는 방법이 있다. 한 가지 예를 보이자면 .vimrc(_vimrc)파일에서 win32를 확인(?)하는 거다.
if has("win32")
  colorscheme desert
  set bg=dark
  set clipboard=unnamed
  set guifont=XXXXX:h9
  set guioptions=grLt
  winsize 120 40
  ...
endif
윈도우(win32)일때는 GUI설정(폰트라던가 Color Scheme, Tool-bar 없애기 등등)을 하는 부분을 넣었다. 필요하다면 else로 분기해서 터미널만의 설정을 넣는 방법도 있겠다.

여기까지는 단순히 윈도우냐 아니냐를 구분했는데 물론 더 자세히 구분할 수도 있다. Vim에서 has()함수에 대한 도움말을 잠깐 찾아보자.
:help has()
여기서 parameter에 해당하는 feature-list에 관한 내용을 보라고 안내해준다. 자주 사용되는 OS에 해당하는 키워드만 뽑아보면
unix - linux는 없는데 그냥 unix로 통일되는 듯 
mac 
win32 
win64 - 64비트 윈도우(하지만 윈도우7 64비트에 해 보니 win32로 해도 인식하더라) 
win32unix - 윈도우에서 cygwin 환경 등을 사용할 때 

혹은 터미널에서 실행되는지 gui로 실행되는지를 구분하려면 gui_running 키워드를 이용해 구분하는 것도 가능하다는 이야기다.

댓글 없음 :