Vimscript:如何获得操作系统版本?

时间:2012-06-05 16:15:12

标签: vim

尽管它类似于thisthis问题,但我需要知道vim运行时操作系统的当前版本。之前的问题对我没有帮助,因为它们描述了可执行文件的功能集;我需要的是一个函数来返回os版本的名称或编号(例如,在此widows version chart中列出)。

有吗?

3 个答案:

答案 0 :(得分:1)

我不了解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

答案 1 :(得分:0)

(只需制作30个字符)

echo exec('cat "/etc/issue"')

答案 2 :(得分:0)

要调用Win32函数GetVersionEx(),您必须编写一个公开该函数的DLL,并通过libcall()从Vim调用它。有关所有实现细节,请参阅

:help libcall()

或者,您可以编写可执行文件并使用system()来解析其输出。