Neovim is a terminal text editorforked from Vim created to refactor and improve the maintainability of Vim's original code and improving the extensibility of Vim by adding support for Lua scripting.[2][3][4][5] Some features of the fork include built-in Language Server Protocol (LSP) support, support for asynchronous I/O by using the C library libuv, a built in terminal emulator[6] and for Lua scripting by using LuaJIT language interpreter,[7] allowing both plugin scripting and running scripts in headless / batch mode. Neovim also cleans up the outdated Vim codebase, making startup faster and allowing for asynchronous code execution.[8][9][10] The project is open source and is licensed under the Apache 2.0license,[11] its source code is available on GitHub.[12]
The Neovim project was started in 2014 by Thiago de Arrua as an effort to completely rework the outdated Vim source code as the "Vim's rebirth of the 21st century"[4][8] after a patch to Vim adding support for multi-threading was rejected.[13][14][15] Neovim had a successful fundraising in March 2014, supporting at least one full-time developer.[5][16][17]
Neovim is meant as a successor to Vim, not a replacement. As such, the project aims to build on top of Vim's features and source code while maintaining Vim's "character"[2] and almost all of its features.[18]
Over the years, various technical improvements were made to the source code, such as making the source code slimmer and more optimized, making features such as search faster and making Neovim extensible with the addition of support for Lua scripting.[2][10]
Neovim has gained popularity in the development scene, and as of January 2026 Neovim gained almost 96 thousand stars on GitHub[19] compared to Vim's almost 40 thousand.[20] In 2025, Neovim was voted the most admired development environment in the Stack Overflow developer survey for the fifth consecutive year.[21][22][23][24][25]
Features and versions
With the 0.5 release of Neovim on 2 July 2021, it gained built-in support for the LSP, Tree-sitter, and more complete Lua support – including the support for more powerful configuration scripts written in Lua like NvChad and LazyVim instead of the outdated Vim script,[26][27][28] scripts that extend Neovim's functionality by adding various features like text completion, syntax highlighting, mouse support and other features found in modern IDEs and text editors.[29][30]
Support for versions of Vim script prior to Vim9script still exists, maintaining retrocompatibility with older configuration files made for Vim,[31] but support for Vim9script won't be added due to the devs focusing on Lua improvements[32][33] and because Vim script is considered hard to read and unintuitive[34]
This page is based on this Wikipedia article Text is available under the CC BY-SA 4.0 license; additional terms may apply. Images, videos and audio are available under their respective licenses.