即使它与this和this question类似,我也需要在vim运行时知道操作系统的当前版本。前面的问题对我没有帮助,因为它们描述了可执行文件的功能集;我需要的是一个函数来返回操作系统版本的名称或编号(例如,在这个寡妇版本图表中列出)。
有吗?
我不知道 Windows 但在 Mac OS X 上你可以这样做:
$ sw_vers -productVersion
在 Ubuntu 上,您可以执行以下操作:
$ lsb_release -rs
这个快速破解似乎有效,您必须根据您的需要对其进行调整:
function! GetSysVersion()
let os=substitute(system('uname'), '\n', '', '')
if os == 'Darwin' || os == 'Mac'
let sys_version=substitute(system('sw_vers -productVersion'), '\n', '', '')
elseif os == 'Linux'
let sys_version=substitute(system('lsb_release -rs'), '\n', '', '')
endif
echo sys_version
endfunction
(只需制作30个字符)
echo exec('cat "/etc/issue"')
要调用 Win32 函数GetVersionEx()
,您必须编写一个公开该函数的 DLL,并通过 Vim 从 Vim 调用它libcall()
。有关所有实现细节,请参阅
:help libcall()
或者,您可以编写一个可执行文件并使用system()
它来解析其输出。