Not: Her iki önceki cevaplar da bana sorunun nasıl çözüleceğini (ve benden çok fazla puan aldı) bulmak için yeterli bilgi vermesine rağmen, ikisi de tam cevabı vermedi. Böylece aynı soruyu başkaları araştırmayı yapmak zorunda kalmaz, kendi cevabımı ekliyorum. Ancak, @googletorp veya @Azz bu bilgiyi eklemek için cevaplarını düzenlerse, cevabımı kaldıracağım ve onların cevaplarını kabul edeceğim.
Çıkış :h feature-listkullanmak gerekir önerir has("win32")ve has("macunix")ancak Vim sürümünde çalışmaz ikincisi OS X dahil (O does Ancak MacVim çalışma.)
İşte sonunda kullandığım şey:
if has("win32")
"Windows options here
else
if has("unix")
let s:uname = system("uname")
if s:uname == "Darwin\n"
"Mac options here
endif
endif
endif
has("win32")Benim için çalıştığını, 64 bit Windows'ta 64 bit Vim'de bile çalıştığını unutmayın .
Unix'in diğer lezzetlerini ayırt etmek unameiçin if has("unix")blok içindeki benzer testleri de kullanabilirsiniz . Sadece çalıştırmak unameveya uname -akomut satırından karşılaştırmak için gerekenleri görmek için s:unamebirlikte. Ayrıca :h matchstr(), unameçıktısının yalnızca bir bölümünü karşılaştırmanız gerekip gerekmediğine de bakın .