I am using a Gradle compiler plugin for Vim. I run :compiler gradle and then :make build, and Gradle build is executed and error results properly parsed (many thanks to @lcd047 answering my question). The problem is that after I fix some errors and re-run the build to check if they were properly fixed, make tells me that

make: Nothing to be done for `build'.

If i restart Vim, i can re-run the build again.

Seems that it's looking for some timestamp that is not changed? How do I tell make to re-run the build anyway?

  • 1
    What does your 'makeprg' look like (:set makeprg?)? What command exactly is executed when you do :make build?
    – jjaderberg
    Jul 29, 2015 at 16:12
  • @jjaderberg - thank you. Seems that makeprg was set to make instead of gradle for some reason. Everything works fine now
    – vitvly
    Jul 30, 2015 at 11:03
  • Solved by comment from @jjaderberg
    – vitvly
    Jul 31, 2015 at 8:56
  • 1
    @siphiuel I think you did something with makeprg, but what? Could you post what you did to fix it as an answer? That was other people will be able to find it and benefit from it :-) Jul 31, 2015 at 11:41
  • Added a proper answer. Thanks for putting this in order. I must admit that first i didn't properly understand what fixed it exactly:). But comments pointed in the right direction. Thanks again everyone.
    – vitvly
    Jul 31, 2015 at 13:16

1 Answer 1


Solved by comment from @jjaderberg. The problem is related to the compiler command. To quote Vim's help:

6. Selecting a compiler                                 compiler-select

                                                :comp :compiler E666
:comp[iler][!] {name}           Set options to work with compiler {name}.
                                Without the "!" options are set for the
                                current buffer.  With "!" global options are set.

Now, i was using :compiler gradle instead of :compiler! gradle, hence had makeprg properly set in one buffer only. Switching to a different buffer changed its value to the default, which is simply make.

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.