FEATURES:0e873a30f3
Lua(Jit) built-in #44115b32bce73c
Windows: `:terminal` #70077b0ceb3726
UI/API: externalize cmdline #7173b67f58b284
UI/API: externalize wildmenu #7454b23aa1cf09
UI: 'winhighlight' #659717531ed082
UI: command-line coloring (`:help input()-highlight`) #6364244a1f97db
API: execute lua directly from the remote api #670445626de63f
API: `get_keymap()` #6236db999821d4
API: `nvim_get_hl_by_name()`, `nvim_get_hl_by_id()` #7082dc685387a3
menu_get() function #63229db42d4ce9
:cquit : take an error code argument #73369cc185dc6d
job-control: serverstart(): support ipv6 #66801b7a9bf4d2
job-control: sockopen() #65946efe84af68
clipboard: fallback to tmux clipboard #68946016ac270f
clipboard: customize clipboard with `g:clipboard` #60303a86dd54f3
ruby: override ruby host via `g:ruby_host_prog` #684116cce1ac17
debug: $NVIM_LOG_FILE #68270cba3da26e
`:checkhealth` built-in, validates $VIMRUNTIME #7399 FIXES:105d680aea
TUI: more terminals, improve scroll/resize #6816cb912a3eda
:terminal : handle F1-F12, other keys #7241619838f85d
inccommand: improve performance #694904b3c32772
inccommand: Fix matches for zero-width #748760b1e8ad12
inccommand: multiline, other fixes #7315f1f7f3b512
inccommand: Ignore leading modifiers in the command #69671551f71321
inccommand: fix 'gdefault' lockup #72626338199b76
API: bufhl: support creating new groups #7414541dde36e3
API: allow K_EVENT during operator-pending8c732f7274
terminal: adjust for 'number' #74405bec94652c
UI: preserve wildmenu during jobs/events #7110c349083155
UI: disable 'lazyredraw' during ui_refresh. #625951808a244e
send FocusGained/FocusLost event instead of pseudokey #7221133f8bc628
shada: preserve unnamed register on restart #47001b70a1da04
shada: avoid assertion on corrupt shada file #69589f534f338a
mksession: Restore tab-local working directory #6859de1084f3c4
fix buf_write() crash #71407f7698649f
syntax: register 'Normal' highlight group #69736e7a8c3fe2
RPC: close channel if stream was closed #708185f3084e21
clipboard: disallow recursion; show hint only once #72038d1ccb606d
clipboard: performance, avoid weird edge-cases #719301487d4385
'titleold' #735801e53a5cbe
Windows: better path-handling, separator (slash) hygiene #73490f2873ce99
Windows: multibyte startup arguments #7060 CHANGES:9ff0cc7085
:terminal : start in normal-mode #6808032b088c84
lower priority of 'cursorcolumn', 'colorcolumn' #73642a3bcd1ff8
RPC: Don't delay notifications when request is pending #6544023f67cad8
:terminal : Do not change 'number', 'relativenumber' #67961ef2d768e7
socket.c: Disable Nagle's algorithm on TCP sockets #69156720fe253e
help: `K` tries Vim help instead of manpage #31047068370560
help, man.vim: change "outline" map to `gO` #7405
Wiki | Documentation | Twitter | Community | Gitter 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 wiki and Roadmap for more information.
Install from source
make CMAKE_BUILD_TYPE=RelWithDebInfo
sudo make install
To install to a non-default location, specify CMAKE_INSTALL_PREFIX
:
make CMAKE_EXTRA_FLAGS="-DCMAKE_INSTALL_PREFIX=/full/path/"
make install
See the wiki for details.
Install from package
Pre-built packages for Windows, macOS, and Linux are found at the Releases page.
Managed packages are in Homebrew, Debian, Ubuntu, Fedora, Arch Linux, Gentoo, and more!
Project layout
├─ ci/ build automation
├─ cmake/ build scripts
├─ runtime/ user plugins/docs
├─ src/ 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
├─ third-party/ cmake subproject to build dependencies
└─ test/ tests (see test/README.md)
- To disable
third-party/
specifyUSE_BUNDLED_DEPS=NO
orUSE_BUNDLED=NO
(CMake option).
Features
- Modern GUIs
- API access from any language including clojure, lisp, go, haskell, lua, javascript, perl, python, 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!
License
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 remain under the Vim license.
-
Contributions committed after b17d96 are licensed under Apache 2.0 unless those contributions were copied from Vim (identified in the commit logs 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.