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'1e71978cf0events: VimSuspend, VimResume #82801e7d5e8cdf#6272 'stdpath()'f96d99ad11#8247 server: introduce --listene8c39f72fd#8226 insert-mode: interpret unmapped META as ESC98e7112390msg: do not scroll entire screen (#8088)f72630b784#8055 let negative 'writedelay' show all redraws5d2dd2ebe2win: has("wsl") on Windows Subsystem for Linux #7330a4f6cec7a3cmdline: 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 MSVCee4e1fd8ecwin: Fix reading content from stdin (#8267) TUI:ffb8904913#8309 TUI: add support for mouse release events in urxvt8d5a46e77b#8081 TUI: implement "standout" attribute60716371e9TUI: support TERM=konsole-256color67848c0b91#7653 TUI: report TUI info with -V3 ('verbose' >= 3)3d0ee17c91TUI/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'451c48a092terminal: flush vterm output buffer on pty output #84865d6732ff09:checkhealth fixes #833553f11dcfc7#8218 'Fix errors reported by PVS'd05712fbe7inccommand: pause :terminal redraws (#8307)51af911a27inccommand: do not execute trailing commands #825684359a467fterminal: resize to the max dimensions (#8249)d49c1dda8b#8228 Make vim_fgets() return the same values as in Vim60e96a45b4screen: winhl=Normal:Background should not override syntax (#8093)0c59ac1a2c#5908 'shada: Also save numbered marks'ba87a2cde7cscope: ignore EINTR while reading the prompt (#8079)b1412dc412#7971 ':terminal Enter/Leave should not increment jumplist'3a5721e91bTUI: 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 cscopeverbose7c4bb23ff3defaults: do :filetype stuff unless explicitly "off"2aa308c685#5658 'Apply :lmap in macros'8ce6393048terminal: Leave 'relativenumber' alone (#8360)e46534b423#4486 refactor: Remove maxmem, maxmemtot options131aad953cwin: defaults: 'shellcmdflag', 'shellxquote' #7343c57d315963#8031 jobwait(): return -2 on interrupt also with timeout6452831cf9clipboard: 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-patchtoken).
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.
