NB Mặc dù cả hai câu trả lời trước đó đều cung cấp cho tôi đủ thông tin để tìm ra cách giải quyết vấn đề (và nhận được sự ủng hộ từ tôi), nhưng thực tế không đưa ra câu trả lời đầy đủ. Để những người khác có cùng câu hỏi không phải thực hiện nghiên cứu, tôi đang thêm câu trả lời của riêng mình. Tuy nhiên, nếu @googletorp hoặc @Azz chỉnh sửa câu trả lời của họ để bao gồm thông tin này, tôi sẽ xóa câu trả lời của tôi và chấp nhận câu trả lời của họ.
Kết quả cho :h feature-list
thấy rằng bạn sẽ có thể sử dụng has("win32")
và has("macunix")
, nhưng sau này không hoạt động trong phiên bản của Vim có trong OS X. (Nó làm , tuy nhiên, làm việc trong MacVim.)
Đây là những gì tôi đã kết thúc bằng cách sử dụng:
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
Lưu ý rằng nó has("win32")
hoạt động với tôi, ngay cả trong Vim 64 bit trên Windows 64 bit.
Bạn cũng có thể sử dụng các thử nghiệm tương tự uname
trong if has("unix")
khối để phân biệt các hương vị khác của Unix. Chỉ cần chạy uname
hoặc uname -a
từ dòng lệnh để xem những gì bạn cần so sánh s:uname
với. Xem thêm :h matchstr()
nếu bạn cần so sánh chỉ là một phần của uname
đầu ra.