FEATURES:0e873a30f3Lua(Jit) built-in #44115b32bce73cWindows: `:terminal` #70077b0ceb3726UI/API: externalize cmdline #7173b67f58b284UI/API: externalize wildmenu #7454b23aa1cf09UI: 'winhighlight' #659717531ed082UI: command-line coloring (`:help input()-highlight`) #6364244a1f97dbAPI: execute lua directly from the remote api #670445626de63fAPI: `get_keymap()` #6236db999821d4API: `nvim_get_hl_by_name()`, `nvim_get_hl_by_id()` #7082dc685387a3menu_get() function #63229db42d4ce9:cquit : take an error code argument #73369cc185dc6djob-control: serverstart(): support ipv6 #66801b7a9bf4d2job-control: sockopen() #65946efe84af68clipboard: fallback to tmux clipboard #68946016ac270fclipboard: customize clipboard with `g:clipboard` #60303a86dd54f3ruby: override ruby host via `g:ruby_host_prog` #684116cce1ac17debug: $NVIM_LOG_FILE #68270cba3da26e`:checkhealth` built-in, validates $VIMRUNTIME #7399 FIXES:105d680aeaTUI: more terminals, improve scroll/resize #6816cb912a3eda:terminal : handle F1-F12, other keys #7241619838f85dinccommand: improve performance #694904b3c32772inccommand: Fix matches for zero-width #748760b1e8ad12inccommand: multiline, other fixes #7315f1f7f3b512inccommand: Ignore leading modifiers in the command #69671551f71321inccommand: fix 'gdefault' lockup #72626338199b76API: bufhl: support creating new groups #7414541dde36e3API: allow K_EVENT during operator-pending8c732f7274terminal: adjust for 'number' #74405bec94652cUI: preserve wildmenu during jobs/events #7110c349083155UI: disable 'lazyredraw' during ui_refresh. #625951808a244esend FocusGained/FocusLost event instead of pseudokey #7221133f8bc628shada: preserve unnamed register on restart #47001b70a1da04shada: avoid assertion on corrupt shada file #69589f534f338amksession: Restore tab-local working directory #6859de1084f3c4fix buf_write() crash #71407f7698649fsyntax: register 'Normal' highlight group #69736e7a8c3fe2RPC: close channel if stream was closed #708185f3084e21clipboard: disallow recursion; show hint only once #72038d1ccb606dclipboard: performance, avoid weird edge-cases #719301487d4385'titleold' #735801e53a5cbeWindows: better path-handling, separator (slash) hygiene #73490f2873ce99Windows: multibyte startup arguments #7060 CHANGES:9ff0cc7085:terminal : start in normal-mode #6808032b088c84lower priority of 'cursorcolumn', 'colorcolumn' #73642a3bcd1ff8RPC: Don't delay notifications when request is pending #6544023f67cad8:terminal : Do not change 'number', 'relativenumber' #67961ef2d768e7socket.c: Disable Nagle's algorithm on TCP sockets #69156720fe253ehelp: `K` tries Vim help instead of manpage #31047068370560help, 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=NOorUSE_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-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.
