neovim/README.md

152 lines
6.7 KiB
Markdown
Raw Normal View History

[![Neovim](https://raw.githubusercontent.com/neovim/neovim.github.io/master/logos/neovim-logo-300x87.png)](https://neovim.io)
2017-02-17 17:44:10 +01:00
2016-10-12 23:52:05 +02:00
[Wiki](https://github.com/neovim/neovim/wiki) |
[Documentation](https://neovim.io/doc) |
2019-02-04 13:21:35 +01:00
[Chat/Discussion](https://gitter.im/neovim/neovim) |
[Twitter](https://twitter.com/Neovim)
2014-02-21 03:08:59 +01:00
2018-10-31 20:19:58 +01:00
[![Travis build status](https://travis-ci.org/neovim/neovim.svg?branch=master)](https://travis-ci.org/neovim/neovim)
[![AppVeyor build status](https://ci.appveyor.com/api/projects/status/urdqjrik5u521fac/branch/master?svg=true)](https://ci.appveyor.com/project/neovim/neovim/branch/master)
[![Codecov coverage](https://img.shields.io/codecov/c/github/neovim/neovim.svg)](https://codecov.io/gh/neovim/neovim)
[![Coverity Scan analysis](https://scan.coverity.com/projects/2227/badge.svg)](https://scan.coverity.com/projects/2227)
[![Clang analysis](https://neovim.io/doc/reports/clang/badge.svg)](https://neovim.io/doc/reports/clang)
[![PVS-Studio analysis](https://neovim.io/doc/reports/pvs/badge.svg)](https://neovim.io/doc/reports/pvs/PVS-studio.html.d)
[![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/)
2019-12-24 06:43:25 +01:00
[![nvim](https://snapcraft.io//nvim/badge.svg)](https://snapcraft.io/nvim)
2014-02-22 18:29:21 +01:00
Neovim is a project that seeks to aggressively refactor Vim in order to:
- Simplify maintenance and encourage [contributions](CONTRIBUTING.md)
2014-03-07 22:25:44 +01:00
- Split the work between multiple developers
2017-02-17 17:41:30 +01:00
- Enable [advanced UIs] without modifications to the core
- Maximize [extensibility](https://github.com/neovim/neovim/wiki/Plugin-UI-architecture)
2018-10-31 20:19:58 +01: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-21 03:08:59 +01:00
Features
--------
- Modern [GUIs](https://github.com/neovim/neovim/wiki/Related-projects#gui)
- [API access](https://github.com/neovim/neovim/wiki/Related-projects#api-clients)
2019-02-04 13:21:35 +01:00
from any language including C/C++, C#, Clojure, D, Elixir, Go, Haskell, Java,
JavaScript/Node.js, Julia, Lisp, Lua, Perl, Python, Racket, Ruby, Rust
- Embedded, scriptable [terminal emulator](https://neovim.io/doc/user/nvim_terminal_emulator.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 20:19:58 +01:00
- Compatible with most Vim plugins, including Ruby and Python plugins
See [`:help nvim-features`][nvim-features] for the full list!
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.
2019-02-04 13:21:35 +01:00
[Managed packages] are in Homebrew, [Debian], [Ubuntu], [Fedora], [Arch Linux],
[Gentoo], and more!
2018-12-09 01:49:59 +01:00
2017-02-17 17:41:30 +01:00
Install from source
-------------------
The build is CMake-based, but a Makefile is provided as a convenience.
2017-02-17 17:41:30 +01:00
make CMAKE_BUILD_TYPE=RelWithDebInfo
sudo make install
To install to a non-default location:
2017-08-19 14:13:14 +02:00
make CMAKE_INSTALL_PREFIX=/full/path/
2017-08-19 14:13:14 +02:00
make install
2018-12-09 01:49:59 +01:00
To skip bundled (`third-party/*`) dependencies:
1. Install the dependencies using a package manager.
```
sudo apt install gperf luajit luarocks libuv1-dev libluajit-5.1-dev libunibilium-dev libmsgpack-dev libtermkey-dev libvterm-dev libutf8proc-dev
2018-12-09 01:49:59 +01:00
sudo luarocks build mpack
sudo luarocks build lpeg
sudo luarocks build inspect
```
2. Build with `USE_BUNDLED=OFF`:
```
make CMAKE_BUILD_TYPE=RelWithDebInfo USE_BUNDLED=OFF
sudo make install
```
To inspect the build, these CMake features are useful:
- `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.
2018-10-31 20:19:58 +01:00
See the [Building Neovim](https://github.com/neovim/neovim/wiki/Building-Neovim) wiki page for details.
2017-02-17 17:41:30 +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
--------------
2017-08-16 00:58:06 +02:00
├─ ci/ build automation
├─ cmake/ build scripts
├─ runtime/ user plugins/docs
├─ src/nvim/ application source code (see src/nvim/README.md)
2017-08-16 00:58:06 +02:00
│ ├─ api/ API subsystem
│ ├─ eval/ VimL subsystem
│ ├─ event/ event-loop subsystem
│ ├─ generators/ code generation (pre-compilation)
│ ├─ lib/ generic data structures
2018-10-31 20:19:58 +01: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
2018-10-31 20:19:58 +01:00
├─ third-party/ CMake subproject to build dependencies
2017-08-16 00:58:06 +02:00
└─ test/ tests (see test/README.md)
2016-08-10 06:47:04 +02:00
License
-------
2014-02-22 12:57:44 +01:00
2014-06-28 00:32:58 +02:00
Neovim is licensed under the terms of the Apache 2.0 license, except for
parts that were contributed under the Vim license.
- Contributions committed before [b17d96][license-commit] remain under the Vim
license.
2014-06-28 00:32:58 +02:00
- Contributions committed after [b17d96][license-commit] are licensed under
Apache 2.0 unless those contributions were copied from Vim (identified in
2014-06-28 00:32:58 +02:00
the commit logs by the `vim-patch` token).
2014-06-30 19:59:56 +02:00
See `LICENSE` for details.
2014-02-22 12:57:44 +01:00
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.
2014-06-30 10:37:41 +02:00
[license-commit]: https://github.com/neovim/neovim/commit/b17d9691a24099c9210289f16afb1a498a89d803
2016-08-10 06:47:04 +02:00
[nvim-features]: https://neovim.io/doc/user/vim_diff.html#nvim-features
[Roadmap]: https://neovim.io/roadmap/
2017-05-20 23:49:46 +02:00
[advanced UIs]: https://github.com/neovim/neovim/wiki/Related-projects#gui
2019-02-04 13:21:35 +01:00
[Managed packages]: https://github.com/neovim/neovim/wiki/Installing-Neovim#install-from-package
2017-02-17 17:41:30 +01:00
[Debian]: https://packages.debian.org/testing/neovim
[Ubuntu]: http://packages.ubuntu.com/search?keywords=neovim
2018-10-31 20:19:58 +01:00
[Fedora]: https://apps.fedoraproject.org/packages/neovim
2017-02-17 17:41:30 +01:00
[Arch Linux]: https://www.archlinux.org/packages/?q=neovim
2017-06-02 23:45:32 +02:00
[Gentoo]: https://packages.gentoo.org/packages/app-editors/neovim
2014-06-28 00:32:58 +02:00
<!-- vim: set tw=80: -->