FEATURES:3cc7ebf810
#7234 built-in VimL expression parser6a7c904648
#4419 implement <Cmd> key to invoke command in any modeb8363283fa
#7679 'startup: treat stdin as text instead of commands'58b210e114
:digraphs : highlight with hl-SpecialKey #26907a13611ba2
#8276 'startup: Let `-s -` read from stdin'1e71978cf0
events: VimSuspend, VimResume #82801e7d5e8cdf
#6272 'stdpath()'f96d99ad11
#8247 server: introduce --listene8c39f72fd
#8226 insert-mode: interpret unmapped META as ESC98e7112390
msg: do not scroll entire screen (#8088)f72630b784
#8055 let negative 'writedelay' show all redraws5d2dd2ebe2
win: has("wsl") on Windows Subsystem for Linux #7330a4f6cec7a3
cmdline: CmdlineEnter and CmdlineLeave autocommands (#7422)207b7ca4bc
#6844 channels: support buffered output and bytes sockets/stdio API:f85cbea725
#7917 API: buffer updates418abfc9d0
#6743 API: list information about all channels/jobs.36b2e3f743
#8375 API: nvim_get_commands273d2cd5d5
#8329 API: Make nvim_set_option() update `:verbose set …`8d40b3617c
#8371 API: more reliable/descriptive VimL errorsebb1acb3c0
#8353 API: nvim_call_dict_function9f994bb699
#8004 API: nvim_list_uis34057045be
#7520 API/UI: forward option updates to UIs911b1e49ab
#7821 API: improve nvim_command_output WINDOWS OS:9cefd83cc7
#8084, #8516 build/win: support MSVCee4e1fd8ec
win: Fix reading content from stdin (#8267) TUI:ffb8904913
#8309 TUI: add support for mouse release events in urxvt8d5a46e77b
#8081 TUI: implement "standout" attribute60716371e9
TUI: support TERM=konsole-256color67848c0b91
#7653 TUI: report TUI info with -V3 ('verbose' >= 3)3d0ee17c91
TUI/rxvt: enable focus-reportingd109f5645b
#7640 TUI: 'term' option: reflect effective terminal behavior FIXES:ed6a113804
#8273 'job-control: avoid kill-timer race'4e02f1ab87
#8107 'jobs: separate process-group'451c48a092
terminal: flush vterm output buffer on pty output #84865d6732ff09
:checkhealth fixes #833553f11dcfc7
#8218 'Fix errors reported by PVS'd05712fbe7
inccommand: pause :terminal redraws (#8307)51af911a27
inccommand: do not execute trailing commands #825684359a467f
terminal: resize to the max dimensions (#8249)d49c1dda8b
#8228 Make vim_fgets() return the same values as in Vim60e96a45b4
screen: winhl=Normal:Background should not override syntax (#8093)0c59ac1a2c
#5908 'shada: Also save numbered marks'ba87a2cde7
cscope: ignore EINTR while reading the prompt (#8079)b1412dc412
#7971 ':terminal Enter/Leave should not increment jumplist'3a5721e91b
TUI: libtermkey: force CSI driver for mouse input #79486ff13d78b7
#7720 TUI: faster startup1c6e956079
#7862 TUI: fix resize-related segfaultsa58c9094db
#7676 TUI: always hide cursor when flushing, never flush buffers during unibilium output303e1df13f
#7624 TUI: disable BCE almost always249bdb07dd
#7761 mark: Make sure that jumplist item will not have zero lnum6f41ce0260
#7704 macOS: Set $LANG based on the system localea043899ba2
#7633 'Retry fgets on EINTR' CHANGES:ad60927d09
#8304 default to 'nofsync'f3f1970597
#8035 defaults: 'fillchars'a6052c7307
#7984 defaults: sidescroll=1b69fa866db
#7888 defaults: enable cscopeverbose7c4bb23ff3
defaults: do :filetype stuff unless explicitly "off"2aa308c685
#5658 'Apply :lmap in macros'8ce6393048
terminal: Leave 'relativenumber' alone (#8360)e46534b423
#4486 refactor: Remove maxmem, maxmemtot options131aad953c
win: defaults: 'shellcmdflag', 'shellxquote' #7343c57d315963
#8031 jobwait(): return -2 on interrupt also with timeout6452831cf9
clipboard: macOS: fallback to tmux if pbcopy is broken #7940300d3651e2
#7919 Make 'langnoremap' apply directly after a mapada1956206
#7880 'lua/executor: Remove lightuserdata' INTERNAL:de0a9548f7
#7806 internal statistics for list impldee78a4095
#7708 rewrite internal list impl
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, set CMAKE_INSTALL_PREFIX
:
make CMAKE_EXTRA_FLAGS="-DCMAKE_INSTALL_PREFIX=/full/path/"
make install
To list all targets:
cmake --build build --target help
To skip "bundled" dependencies define USE_BUNDLED_DEPS=NO
(CMake option: USE_BUNDLED=NO
).
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)
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.