これとこの質問に似ていますが、vimの実行中にオペレーティングシステムの現在のバージョンを知る必要があります。前の質問は、実行可能ファイルの機能セットについて説明しているため、役に立ちません。私が必要としているのは、名前または番号のいずれかでOSバージョンを返す関数です(たとえば、この未亡人のバージョンチャートにリストされているように)。
ありますか?
これとこの質問に似ていますが、vimの実行中にオペレーティングシステムの現在のバージョンを知る必要があります。前の質問は、実行可能ファイルの機能セットについて説明しているため、役に立ちません。私が必要としているのは、名前または番号のいずれかでOSバージョンを返す関数です(たとえば、この未亡人のバージョンチャートにリストされているように)。
ありますか?
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 から呼び出す必要がありlibcall()
ます。すべての実装の詳細については、を参照してください。
:help libcall()
または、実行可能ファイルを作成し、system()
その出力を解析するために使用することもできます。