finds.dev← search

// the find

skywind3000/asyncrun.vim

★ 1,905 · Vim Script · MIT · updated Nov 2025

:rocket: Run Async Shell Commands in Vim 8.0 / NeoVim and Output to the Quickfix Window !!

A single-file Vim/Neovim plugin that wraps the native job-control APIs to run shell commands in the background and stream output into the quickfix window, instead of blocking the editor with `:!`. It's for anyone still running builds/greps/tests from inside Vim who wants async `:make` without a full LSP or build-system integration.

It's genuinely a single self-contained `asyncrun.vim` file with no external dependencies, which is rare for a plugin with this much functionality packed in. The macro system (`$(VIM_FILEPATH)`, `<root>`, etc.) plus project-root detection via `.git`/`.svn`/`.hg` markers covers the actual annoying parts of shelling out from an editor. It's been maintained continuously since 2016 (last push Nov 2025) with a changelog that shows someone actually fixing reported bugs rather than letting issues rot.

It's Vim Script, so reading or extending the implementation means wading through `:execute` string-building and global state (`g:asyncrun_*` variables) rather than anything resembling normal control flow. Options are parsed as raw strings before the command (`-mode=?`, `-cwd=?`), which is brittle — commands starting with `-` need an escape hatch (`@`), and there's no real validation if you typo a flag. There's no test suite in the repo at all, so regressions depend entirely on manual testing and user bug reports. It also increasingly overlaps with Neovim's built-in `:terminal` and job APIs, so Neovim users get less marginal value than the Vim 8 audience this was originally built for.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →