2010-07-30 15 views
15

Vim ve MacVim kullanıyorum. MacVim'im için sevdiğim 256 renkli bir colorcheme'ım var, ama eğer normal bir vim'e yüklüyorsam, açıkçası işe yaramıyor (blinkies yerine). Tüm sistemlerimde aynı vim yapılandırmasını kullanabilmeyi isterim:Koşullu colorscheme içinde .vimrc

.vimrc'da palet boyutunu kontrol etmenin bir yolu var mı ve iki renkkimeden birini buna göre mi ayarlansın? Bu mümkün değilse MacVim vs vim'in de kontrol edilmesi iyi olur.

cevap

23

Birkaç seçeneğiniz var.

En iyi seçeneğin, .vimrc ve bir başka .gvimrc (veya sizin durumunuzda .vimrc içinde bir colorcheme yüklemeyin) bir colorscheme yüklemek olduğunu düşünüyorum. .gvimrc colorscheme yalnızca MacVim'in GUI sürümünü çalıştırdığınızda yüklenir.

birçok dosyaya yapılandırmanızı bölmek istemiyorsanız, ayrıca .vimrc yılında böyle bir koşullu kullanabilirsiniz: Eğer gerçekten renk sayısını bilmek istiyorum yoksa,

if has('gui_running') 
    colorscheme mycrazycolors 
endif 

Son olarak

:echo &t_Co 

t_Co MacVim GUI sürümü boş, yani muhtemelen hala has() tekniğin bir varyasyonu kullanmak isteyeceksiniz: mevcut, sen t_Co ayarını kontrol edebilirsiniz. Aslında, varsayılan .vimrc sözdizimi vurgulamasını etkinleştirmek belirlemek için benzer bir şey yapar: Bütünlük adına

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

, ben de renk terminalleri için makul ayarlarını içerecek şekilde ColorScheme dosyasını genişletmek olabileceğini belirtmeliyiz. Ancak bu, adil bir iştir ve daha fazla rengi destekleyen bir terminal uygulamasına geçmek daha kolay olabilir.

fazla bilgi için şu konulara bakın:

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

Bunlar için, özellikle de .gvimrc için teşekkürler - bunun olduğunu bilmiyordum. – Amadan

5

Geçenlerde tüm Linux sistemlerinde aynı .vimrc kullanın, ancak ben Ubuntu üzerinde çalışıyorsa Ubuntu monospace yazı tipini kullanmak için böyle bir şey yaptı:

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

İster romantik bir Mac üzerinde çalışan ya da başka artmadığını tespit benzer şeyler yapabileceğini geliyor bana:

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

OS X'te hangi uname raporlarını öğrenmek için http://en.wikipedia.org/wiki/Uname kullandığını unutmayın. Mac'im üzerinde denemek için elimde kullanışlı bir şey yok ama bunun doğru olduğunu hayal ediyorum.

+2

FYI: 'uname -s', Mac’imde' Darwin’i yazdırdı. – sdolan