No Description

emmanueltouzery b1ae775de6 fix(treesitter): really backup spelloptions (#22145) 1 year ago
.github 4ac67e8a60 ci(release): properly set multiline output variable (#21560) 1 year ago
ci f9228577e8 ci: convert CRLF to LF (#20389) 2 years ago
cmake 4bef100e47 build: restrict `git describe` to top level source directory 2 years ago
cmake.config f05a2891d3 build: rename build-related dirs 2 years ago
cmake.deps 00d105f802 build(deps): bump tree-sitter-vimdoc to v1.3.0 1 year ago
cmake.packaging f05a2891d3 build: rename build-related dirs 2 years ago
contrib 5b1bda14ae [Backport release-0.8] build(nix): change the pkgs to final, add new version of libvterm (#20640) 2 years ago
runtime b1ae775de6 fix(treesitter): really backup spelloptions (#22145) 1 year ago
scripts c5d688c54e vim-patch: bump VIM_VERSION from 8.0 => 8.1 #20762 1 year ago
snap 192ea01edd cmake: install app icon in XDG hicolor icon theme (#14656) 3 years ago
src b49f5c7882 Merge pull request #22085 from neovim/backport-21000-to-release-0.8 1 year ago
test c00f42cc21 fix(messages): reset msg_grid_scroll_discount when redrawing 1 year ago
.cirrus.yml fcd3e53720 ci(cirrus): set clone depth to 2 instead of 1 (#20295) 2 years ago
.clang-format e86901eb68 docs(clang-format): one space in directives indent (#18800) 2 years ago
.clangd 5777fc1b8e Adding clangd language serever config file to point to build/ directory for compile_commands.json 3 years ago
.editorconfig 0c8e48c78d chore(editorconfig): remove "charset" (#18541) 2 years ago
.git-blame-ignore-revs 1e3073bc35 docs: update .git-blame-ignore-revs (#20066) 2 years ago
.gitattributes 4f0a0a2933 docs: update .gitattributes (#19800) 2 years ago
.gitignore 875b58e094 build: add basic cmake-presets integration (#19128) 2 years ago
.luacheckrc 2afcdbd63a feat(Man): port to Lua (#19912) 2 years ago
.luacov 678a51b1da Lua: vim.validate() 5 years ago
.mailmap 5b7213ad7f docs: update .mailmap (#20086) 2 years ago
.stylua.toml aa4f9c5341 refactor(lua): reformat with stylua 0.14.0 (#19264) 2 years ago
.styluaignore 676e9e9334 ci: lint runtime with stylua 2 years ago
BACKERS.md 846fe25111 Update backer URL 9 years ago
BSDmakefile 69fe427df4 feat(lua)!: register_keystroke_callback => on_key 3 years ago
CMakeLists.txt 70fb40a229 version bump 1 year ago
CMakePresets.json 875b58e094 build: add basic cmake-presets integration (#19128) 2 years ago
CONTRIBUTING.md f73bc880f4 [Backport release-0.8] feat(docs): update parser, HTML gen (#20737) 2 years ago
LICENSE.txt 5a14c820a9 [Backport release-0.8] docs: fix/remove invalid URLs (#20735) 2 years ago
MAINTAIN.md f294712d8c [Backport release-0.8] doc (#20616) 2 years ago
Makefile 09b64d75bd feat(docs): gen_help_html.lua 2 years ago
README.md 4c6bf386c5 docs: removed outdated coverage link 2 years ago
codecov.yml 3eb241d831 bundle: move tree-sitter as a bundled dep 4 years ago

README.md

Neovim

Documentation | Chat | Twitter

GitHub CI Coverity Scan analysis Clang analysis PVS-Studio analysis

Packages Debian CI Downloads nvim

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

See the Introduction wiki page and Roadmap for more information.

Features

See :help nvim-features for the full list!

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 the Building Neovim wiki page for details.

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

make CMAKE_BUILD_TYPE=RelWithDebInfo
sudo make install

To install to a non-default location:

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

├─ ci/              build automation
├─ 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/         VimL 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 for details.

Vim is Charityware.  You can use and copy it as much as you like, but you are
encouraged to make a donation for needy children in Uganda.  Please see the
kcc section of the vim docs or visit the ICCF web site, available at these URLs:

        http://iccf-holland.org/
        http://www.vim.org/iccf/
        http://www.iccf.nl/

You can also sponsor the development of Vim.  Vim sponsors can vote for
features.  The money goes to Uganda anyway.