NB Obwohl beide vorherigen Antworten mir genügend Informationen gaben, um herauszufinden, wie das Problem zu lösen ist (und ich dafür positive Stimmen erhielt), gaben beide nicht die vollständige Antwort. Damit andere mit der gleichen Frage nicht recherchieren müssen, füge ich meine eigene Antwort hinzu. Wenn jedoch @googletorp oder @Azz ihre Antwort bearbeiten, um diese Informationen einzuschließen, entferne ich meine Antwort und akzeptiere ihre.
Die Ausgabe :h feature-listzeigt , dass Sie sollten in der Lage zu verwenden has("win32")und has("macunix"), aber letztere nicht eingeschlossen in OS X in der Version von Vim arbeiten (Es tut jedoch Arbeit in MacVim.)
Folgendes habe ich letztendlich verwendet:
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
Beachten Sie, dass es has("win32")bei mir auch in 64-Bit-Vim unter 64-Bit-Windows funktioniert hat.
Sie können auch ähnliche Tests unameinnerhalb des if has("unix")Blocks verwenden, um andere Unix-Varianten zu unterscheiden. Führen Sie einfach unameoder uname -aüber die Befehlszeile aus, um zu sehen, womit Sie vergleichen müssen s:uname. Siehe auch, :h matchstr()wenn Sie nur einen Teil der unameAusgabe vergleichen müssen.
Zur Aufzeichnung: in vim von MSYS2 ist has ("unix") 1, has ("win32") ist 0 und has ("win32unix") ist 1. Verwenden Sie also has ("win32unix"), um es zu unterscheiden.
Sie können einen Blick hier
Grundsätzlich können Sie entweder
has()
,system()
:quelle
Dies scheint das zu sein, wonach du suchst. Ich verstehe es nicht ganz. Ich werde dich einfach verlinken.
/programming/2842078/how-do-i-detect-os-x-in-my-vimrc-file-so-certain-configurations-will-only-apply
quelle