2010-07-30 4 views
15

나는 vim과 MacVim을 사용하고 있습니다. 나는 내 MacVim에 대해 좋아하는 256 색 colorscheme을 가지고 있지만, 보통 vim에로드하면, 분명히 작동하지 않는다. (나는 blinkies를 얻는다.) 모든 시스템에서 동일한 vim 구성을 사용할 수 있기를 원합니다..vimrc의 조건부 색상 표

팔레트 크기가 .vimrc인지 확인하고 그에 따라 두 색상 표 중 하나를 설정하는 방법이 있습니까? 그게 가능하지 않다면, MacVim 대 vim을 확인하는 것도 괜찮을 것입니다.

답변

23

몇 가지 옵션이 있습니다.

최선의 방법은 .vimrc에 하나의 colorscheme을로드하고 .gvimrc에 다른 하나를로드하는 것입니다 (또는 귀하의 경우에는 .vimrc에 colorscheme을로드하지 마십시오). .gvimrc colorscheme은 MacVim의 GUI 버전을 실행할 때만로드됩니다.

여러 파일에 걸쳐 구성을 분할하지 않으려면, 당신은 또한 .vimrc에서 이와 같은 조건을 사용할 수 있습니다 : 당신이 정말 색상 수를 알고 싶은 경우,

if has('gui_running') 
    colorscheme mycrazycolors 
endif 

마지막으로

:echo &t_Co 

t_Co이 MacVim의 GUI 버전 비어있는, 그래서 당신은 아마 아직도 has() 기술의 변형을 사용할 수 있습니다 : 사용할 수, 당신은 t_Co 설정을 확인할 수 있습니다. 사실, 기본이 .vimrc 구문 강조를 활성화하는시기를 결정하는 비슷한 않습니다 : 완성도를 위해서

if &t_Co > 2 || has("gui_running") 
    syntax on 
endif 

을, 당신은 또한 컬러 단말기에 대한 적절한 설정을 포함하도록 색상 구성표 파일을 확장 할 수 있음을 언급해야한다. 그러나 이것은 상당한 양의 작업이며 더 많은 색상을 지원하는 터미널 응용 프로그램으로 전환하는 것이 더 쉬울 수도 있습니다.

더 많은 정보를 원하시면 다음 항목을 참조하십시오

:help has() 
:help termcap 
:help termcap-colors 
+0

특히 .gvimrc에 대해 감사드립니다. 그 중 하나가 존재한다는 것을 몰랐습니다. – Amadan

5

나는 최근 모든 리눅스 시스템에서 동일한의 .vimrc를 사용하지만, 나는 우분투에서 실행 된 경우 우분투 고정 폭 글꼴을 사용하기 위해이 같은 짓을 :

if (match(system("cat /etc/issue"), "Ubuntu") != -1) 
    set guifont=Ubuntu\ Mono\ 13 
else 
    set guifont=Monospace\ 11 
endif 

당신이 Mac에서 실행하거나하는 경우 감지하는 비슷한 뭔가를 할 수 있다는 것을 나에게 보인다

if (match(system("uname -s"), "Darwin") != -1) 
    colorscheme macscheme 
else 
    colorscheme otherscheme 
endif 

OS X에서 어떤 uname 리포트를 찾으려면 http://en.wikipedia.org/wiki/Uname을 사용했음을 유의하십시오. 여기에 Mac을 사용해 보시려면 편리하지 않지만 정확하다고 상상해보십시오.

+2

FYI :'uname -s'는 내 Mac에서'Darwin'을 출력합니다. – sdolan