On Mon, May 13, 2019 at 5:38 PM Paul Jolly <[email protected]> wrote:
>
> Hi all,
>
> I've tried searching using various terms, but I can't find anything specific 
> on this question.
>
> Is there a way to get the Vim version number, short of redirecting the output 
> of :version to a variable?
>
> I want the major, minor and patch details to ultimately build a semver 
> version.
>
> I can obviously parse the output of :version (having first redirected it to a 
> variable) but first wanted to check if there was a simpler (less brittle?) 
> way.
>
> Thanks in advance.

Major/minor can be got from |v:version|.

If you want to know if a specific patch is compiled-in (let's say
8.0.256) you can test

    if (version > 800) || (version == 800 && has('patch256'))

The above intentionally has more parentheses than is strictly
necessary, for the ease of the human reader.

Remember that patch presence/absence is conceptually not a number but
an array of booleans, and it may be quite a large array (for version
8.1 it has as of this writing 1330 bits and climbing): it is possible
for patch n to be compiled-in even if patch (n-1) isn't. AFAIK the
only way to get the full list of which patches are in and which ones
aren't, is to :redir the output of :version somewhere (e.g. to a
register) then to parse (if it exists) the line beginning "Included
patches:" which is near the top of that output. That line can be
absent if you got the initial release of that major/minor version with
no patches.

Best regards,
Tony.

-- 
-- 
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_use/CAJkCKXs5kFfWezKhRthYXqdggxmt%2B_LboxCeUzJTRO5BnkNzzw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to