Files
neovim/README.md
T

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

115 lines
5.1 KiB
Markdown
Raw Normal View History

<h1 align="center">
2025-12-01 15:18:22 +00:00
<img src="https://raw.githubusercontent.com/neovim/neovim.github.io/master/static/logos/neovim-logo-300x87.png" alt="Neovim">
2017-02-17 17:44:10 +01:00
2023-01-02 15:18:18 -08:00
<a href="https://neovim.io/doc/">Documentation</a> |
<a href="https://app.element.io/#/room/#neovim:matrix.org">Chat</a>
</h1>
2014-02-20 23:08:59 -03:00
2018-10-31 15:19:58 -04:00
[![Coverity Scan analysis](https://scan.coverity.com/projects/2227/badge.svg)](https://scan.coverity.com/projects/2227)
2017-12-27 19:30:23 +01:00
[![Packages](https://repology.org/badge/tiny-repos/neovim.svg)](https://repology.org/metapackage/neovim)
2017-10-27 19:34:02 +02:00
[![Debian CI](https://badges.debian.net/badges/debian/testing/neovim/version.svg)](https://buildd.debian.org/neovim)
2017-11-14 10:47:49 +01:00
[![Downloads](https://img.shields.io/github/downloads/neovim/neovim/total.svg?maxAge=2592001)](https://github.com/neovim/neovim/releases/)
2014-02-22 14:29:21 -03:00
2023-01-02 15:18:18 -08:00
Neovim is a project that seeks to aggressively refactor [Vim](https://www.vim.org/) in order to:
2014-02-24 13:48:18 -05:00
2016-06-03 15:05:44 -04:00
- Simplify maintenance and encourage [contributions](CONTRIBUTING.md)
2014-03-07 21:25:44 +00:00
- Split the work between multiple developers
2017-02-17 17:41:30 +01:00
- Enable [advanced UIs] without modifications to the core
2025-09-16 11:41:36 +08:00
- Maximize [extensibility](https://neovim.io/doc/user/api-ui-events.html#api-ui-events)
2017-02-17 17:41:30 +01:00
2018-10-31 15:19:58 -04:00
See the [Introduction](https://github.com/neovim/neovim/wiki/Introduction) wiki page and [Roadmap]
2017-02-17 17:44:10 +01:00
for more information.
2014-02-20 23:08:59 -03:00
Features
--------
- Modern [GUIs](https://github.com/neovim/neovim/wiki/Related-projects#gui)
2019-01-11 01:20:15 +01:00
- [API access](https://github.com/neovim/neovim/wiki/Related-projects#api-clients)
from any language including C/C++, C#, Clojure, D, Elixir, Go, Haskell, Java/Kotlin,
2019-02-04 13:21:35 +01:00
JavaScript/Node.js, Julia, Lisp, Lua, Perl, Python, Racket, Ruby, Rust
- Embedded, scriptable [terminal emulator](https://neovim.io/doc/user/terminal.html)
- Asynchronous [job control](https://github.com/neovim/neovim/pull/2247)
- [Shared data (shada)](https://github.com/neovim/neovim/pull/2506) among multiple editor instances
- [XDG base directories](https://github.com/neovim/neovim/pull/3470) support
2018-10-31 15:19:58 -04:00
- Compatible with most Vim plugins, including Ruby and Python plugins
2022-10-20 18:04:32 +08:00
See [`:help nvim-features`][nvim-features] for the full list, and [`:help news`][nvim-news] for noteworthy changes in the latest version!
2018-12-09 01:49:59 +01:00
Install from package
--------------------
Pre-built packages for Windows, macOS, and Linux are found on the
[Releases](https://github.com/neovim/neovim/releases/) page.
2021-07-03 18:22:33 +05:30
[Managed packages] are in [Homebrew], [Debian], [Ubuntu], [Fedora], [Arch Linux], [Void Linux], [Gentoo], and more!
2018-12-09 01:49:59 +01:00
2017-02-17 17:41:30 +01:00
Install from source
-------------------
See [BUILD.md](./BUILD.md) and [supported platforms](https://neovim.io/doc/user/support.html#supported-platforms) for details.
2019-02-16 00:23:51 +01:00
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
```
2017-02-17 17:41:30 +01:00
2019-02-16 00:23:51 +01:00
To install to a non-default location:
```bash
make CMAKE_BUILD_TYPE=RelWithDebInfo CMAKE_INSTALL_PREFIX=/full/path/
make install
```
2017-08-19 14:13:14 +02:00
2021-08-21 18:26:33 -07:00
CMake hints for inspecting the build:
2019-02-16 00:23:51 +01:00
- `cmake --build build --target help` lists all build targets.
- `build/CMakeCache.txt` (or `cmake -LAH build/`) contains the resolved values of all CMake variables.
2018-12-09 01:49:59 +01:00
- `build/compile_commands.json` shows the full compiler invocations for each translation unit.
2017-12-27 19:30:23 +01:00
Transitioning from Vim
--------------------
See [`:help nvim-from-vim`](https://neovim.io/doc/user/nvim.html#nvim-from-vim) for instructions.
2017-03-13 14:07:55 +01:00
Project layout
--------------
2022-06-27 03:08:59 -07:00
├─ cmake/ CMake utils
├─ cmake.config/ CMake defines
├─ cmake.deps/ subproject to fetch and build dependencies (optional)
├─ runtime/ plugins and docs
2018-12-09 01:31:34 +01:00
├─ src/nvim/ application source code (see src/nvim/README.md)
2017-08-16 00:58:06 +02:00
│ ├─ api/ API subsystem
│ ├─ eval/ Vimscript subsystem
2017-08-16 00:58:06 +02:00
│ ├─ event/ event-loop subsystem
│ ├─ generators/ code generation (pre-compilation)
│ ├─ lib/ generic data structures
2018-10-31 15:19:58 -04:00
│ ├─ lua/ Lua subsystem
2017-08-16 00:58:06 +02:00
│ ├─ msgpack_rpc/ RPC subsystem
│ ├─ os/ low-level platform code
│ └─ tui/ built-in UI
└─ test/ tests (see test/README.md)
2016-08-10 00:47:04 -04:00
License
-------
2014-02-22 11:57:44 +00:00
2019-12-10 01:24:20 -08:00
Neovim contributions since [b17d96][license-commit] are licensed under the
Apache 2.0 license, except for contributions copied from Vim (identified by the
2026-01-09 09:38:26 +01:00
`vim-patch` token). See [LICENSE.txt](./LICENSE.txt) for details.
2014-02-22 11:57:44 +00:00
2014-06-30 04:37:41 -04:00
[license-commit]: https://github.com/neovim/neovim/commit/b17d9691a24099c9210289f16afb1a498a89d803
2016-08-10 00:47:04 -04:00
[nvim-features]: https://neovim.io/doc/user/vim_diff.html#nvim-features
[nvim-news]: https://neovim.io/doc/user/news.html
2016-08-10 00:47:04 -04:00
[Roadmap]: https://neovim.io/roadmap/
2017-05-20 23:49:46 +02:00
[advanced UIs]: https://github.com/neovim/neovim/wiki/Related-projects#gui
[Managed packages]: ./INSTALL.md#install-from-package
2017-02-17 17:41:30 +01:00
[Debian]: https://packages.debian.org/testing/neovim
2022-12-11 21:41:26 -05:00
[Ubuntu]: https://packages.ubuntu.com/search?keywords=neovim
2022-02-27 22:14:16 -03:00
[Fedora]: https://packages.fedoraproject.org/pkgs/neovim/neovim/
2017-02-17 17:41:30 +01:00
[Arch Linux]: https://www.archlinux.org/packages/?q=neovim
2021-07-03 18:22:33 +05:30
[Void Linux]: https://voidlinux.org/packages/?arch=x86_64&q=neovim
2017-06-02 23:45:32 +02:00
[Gentoo]: https://packages.gentoo.org/packages/app-editors/neovim
[Homebrew]: https://formulae.brew.sh/formula/neovim
2014-06-27 18:32:58 -04:00
<!-- vim: set tw=80: -->