Baike.dev
All toolsOnline toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
neovim

neovim

> 开发工具
Free

Vim-fork focused on extensibility and usability

102.6K stars0 likes0 views
WebsiteGitHub

About

Vim-fork focused on extensibility and usability

Documentation | Chat Neovim is a project that seeks to aggressively refactor Vim in order to:

  • Simplify maintenance and encourage contributions
  • Split the work between multiple developers
  • Enable advanced UIs without modifications to the core
  • Maximize extensibility

See the Introduction wiki page and Roadmap for more information.

Features

  • Modern GUIs
  • API access from any language including C/C++, C#, Clojure, D, Elixir, Go, Haskell, Java/Kotlin, JavaScript/Node.js, Julia, Lisp, Lua, Perl, Python, Racket, Ruby, Rust
  • Embedded, scriptable terminal emulator
  • Asynchronous job control
  • Shared data (shada) among multiple editor instances
  • XDG base directories support
  • Compatible with most Vim plugins, including Ruby and Python plugins

See :help nvim-features for the full list, and :help news for noteworthy changes in the latest version!

Install from package

Pre-built packages for Windows, macOS, and Linux are found on the Releases page.

Managed packages are in Homebrew, Debian, Ubuntu, Fedora, Arch Linux, Void Linux, Gentoo, and more!

Install from source

See BUILD.md and supported platforms for details.

The build is CMake-based, but a Makefile is provided as a convenience. After installing the dependencies, run the following command.

bash
make CMAKE_BUILD_TYPE=RelWithDebInfo
sudo make install

To install to a non-default location:

bash
make CMAKE_BUILD_TYPE=RelWithDebInfo CMAKE_INSTALL_PREFIX=/full/path/
make install

CMake hints for inspecting the build:

  • cmake --build build --target help lists all build targets.
  • build/CMakeCache.txt (or cmake -LAH build/) contains the resolved values of all CMake variables.
  • build/compile_commands.json shows the full compiler invocations for each translation unit.

Transitioning from Vim

See :help nvim-from-vim for instructions.

Project layout

├─ cmake/           CMake utils
├─ cmake.config/    CMake defines
├─ cmake.deps/      subproject to fetch and build dependencies (optional)
├─ runtime/         plugins and docs
├─ src/nvim/        application source code (see src/nvim/README.md)
│  ├─ api/          API subsystem
│  ├─ eval/         Vimscript subsystem
│  ├─ event/        event-loop subsystem
│  ├─ generators/   code generation (pre-compilation)
│  ├─ lib/          generic data structures
│  ├─ lua/          Lua subsystem
│  ├─ msgpack_rpc/  RPC subsystem
│  ├─ os/           low-level platform code
│  └─ tui/          built-in UI
└─ test/            tests (see test/README.md)

License

Neovim contributions since b17d96 are licensed under the Apache 2.0 license, except for contributions copied from Vim (identified by the vim-patch token). See LICENSE.txt for details.

Issues· 1938 open

View all issuesOpen on GitHub
  • #42182

    Wrapped inline virtual text with 'linebreak' miscounts line height: cursor drawn too high, stale rows on scroll

    displaymarksUpdated Oct 1, 2026
  • #41932

    multicursor: `f` only cascades if it succeeds on the primary cursor

    needs:discussionmulticursorUpdated Oct 1, 2026
  • #42188

    Statusline/`'titlestring'` truncation with `maxwidth` leaves unterminated buffer: invalid UTF-8 in `set_title` (and `nvim_eval_statusline()`)

    revisit-at-releasestatuslineUpdated Oct 1, 2026
  • #42160

    dir.lua does not highlight on open with `+edit`

    lifecyclehighlighteventsplugin-dirUpdated Sep 30, 2026
  • #28692

    `E490: no fold found` with tree-sitter

    treesitterfoldsUpdated Sep 30, 2026
  • #8805

    :terminal : normal-mode editing for shell prompt

    terminalUpdated Sep 30, 2026
  • #42166

    multicursor: ]C [C after clearing cursors

    needs:discussionmulticursormarksjumps-navigationUpdated Sep 30, 2026
  • #32759

    vim.treesitter.foldexpr() incorrectly closing folds when editing

    has:planhas:bisectedtreesitterfoldsUpdated Sep 30, 2026
  • #27705

    Treesitter query parser incorrectly parses predicate with many strings

    needs:responsetreesitterUpdated Sep 30, 2026
  • #33346

    Treesitter-aware search

    treesitterop-textobjectsUpdated Sep 30, 2026

> Tags

Vim Scriptapiclua

No comments yet. Be the first to share.

> Details

PublishedSep 26, 2026
UpdatedOct 1, 2026
Category开发工具
PricingFree

> Related tools

V
VS Code
流行的开源代码编辑器
G
Git
分布式版本控制系统
V
Vite
下一代前端构建工具