Neomake is an asynchronous linting and build framework for Vim and Neovim that predates and inspires newer tooling in this space. It runs “makers” (linters, compilers, format checkers, test commands) in the background and surfaces results as signs, virtual text, or via quickfix/location lists. The system is highly configurable: you can define per-filetype makers, chain multiple tools, and control when they run (on save, on write, on cursor hold, or manually). Run several makers concurrently and aggregate results. Because it uses job control and timers, it scales well on large codebases and keeps the editor responsive. It’s useful both as a general “make” front end and as a diagnostic engine for code quality. Async execution of linters, compilers, and test commands via “makers”. Teams often adopt it to standardize checks across languages while keeping developers inside Vim.
Features
- Async execution of linters, compilers, and test commands via “makers”
- Per-filetype and project-local configuration for flexible setups
- Populates quickfix/location lists and places signs or virtual text
- Multiple trigger modes (on save, on write, autocmds, or manual)
- Run several makers concurrently and aggregate results
- Extensible maker definitions to integrate any CLI tool