我在 OS X 和 Windows 上都使用 Vim,配置几乎相同。
我希望能够.vimrc
在两个操作系统上使用相同的功能,但有几件事情我需要进行不同的配置。
我想添加到我的.vimrc
文件中的是:
:if <windows>
"some windows-specific settings here
:elseif <os x>
"some os x-specific settings here
:endif
但我不知道如何使用<windows>
和<os x>
。
这可能吗?
答案1
注意:虽然之前的两个答案都给了我足够的信息来弄清楚如何解决问题(并得到了我的点赞),但实际上都没有给出完整的答案。为了让有同样问题的人不必做研究,我添加了自己的答案。但是,如果@googletorp 或@Azz 编辑他们的答案以包含此信息,我会删除我的答案并接受他们的答案。
输出:h feature-list
表明你应该能够使用has("win32")
和has("macunix")
,但后者在 OS X 中包含的 Vim 版本中不起作用。(它做,但在 MacVim 中可以工作。)
以下是我最终使用的方法:
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")
对我有用,即使在 64 位 Windows 上的 64 位 Vim 中也是如此。
您还可以在块uname
内使用类似的测试if has("unix")
来区分其他版本的 Unix。只需从命令行运行uname
或即可查看需要比较的内容。如果您只需要比较输出的一部分,另请参阅。uname -a
s:uname
:h matchstr()
uname
答案2
你可以看看这里
基本上,您可以使用has()
,system()
:
let os = substitute(system('uname'), "\n", "", "")
if os == "SunOS"
..
endif