I have vim 7.4 installed, but I'm not sure what patch level it was at when I installed it. How do I check?

vim --version


VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Oct 15 2014 16:18:44)

But it doesn't give the patch level or a minor version number.

1 Answer 1


You seem to simply have an unpatched version of vim, otherwise the :version command or the --version parameter would list the patches on the second line. For example on my machine it says:

VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Sep 10 2014 09:36:33)
Included patches: 1-207, 209-355, 357-430

This is "patchlevel" 430, but it skips patches 208 & 356.

Vim doesn't have a "minor version number" beyond major.minor; although I believe that some distributions may use the "patchlevel" as such.

As shown above, not all patches may be included, so if you want to use this value you can't just check if a number is higher than a certain version.

Usually, the best way is to use has("patch-7.4-399"); this will return true if:

  • We're running Vim 7.4 with patch 399 included.
  • We're running Vim 7.5 or later.

You can also use the form of has('patch399'), which is typically used like:

if v:version == 704 && has('patch399')

But be aware; this will be false for Vim 7.5; use this only in very specific cases.

See :help feature-list for some more information.

I can't find a way to list all the included patches, other than redirecting :version and parsing that ... I'm also not sure how this would be useful anyway, as has() should be enough :-)

  • 3
    Is it has("patch-7.4-399") or has("patch-7.4.399")? (the latter was suggested to me by some code-completion, and also seems to be what's actually described at the link you provided)
    – akavel
    Commented Mar 24, 2015 at 9:49
  • 3
    @akavel They both work. You could even use patch-7-4-399 ;-) Commented Mar 24, 2015 at 9:50
  • ahh, awsum, then :)
    – akavel
    Commented Mar 24, 2015 at 12:12
  • 5
    The patch-7.4.399 format is only available after 7.4.237. See :h has-patch.
    – blueyed
    Commented Jun 29, 2016 at 19:32
  • 3
    ↑ @blueyed is referring to the whole has('patch-7.4-399') feature of checking both the major.minor and the patch versions in one swoop (w/o resorting to v:version): independent of whether using - dashes or . dots. Commented Oct 17, 2017 at 4:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.