Vim-fork focused on extensibility and usability
Go to file
Marvim the Paranoid Android c423ec65dc version.c: update [ci skip] (#9875)
vim-patch:8.0.0514: script for creating cmdidxs can be improved
vim-patch:8.0.0715
vim-patch:8.0.0754: terminal window does not support colors
vim-patch:8.0.0755: terminal window does not have colors in the GUI
vim-patch:8.0.0760: terminal window colors wrong with 'termguicolors'
vim-patch:8.0.0769: build problems with terminal on MS-Windows
vim-patch:8.0.0775: in a terminal the cursor is updated too often
vim-patch:8.0.0777: compiler warnings with 64 bit compiler
vim-patch:8.0.0779: :term without an argument uses empty buffer name
vim-patch:8.0.0781: MS-Windows: memory leak when using :terminal
vim-patch:8.0.0783: job of terminal may be freed too early
vim-patch:8.0.0784: job of terminal may be garbage collected
vim-patch:8.0.0787: cannot send CTRL-W command to terminal job
vim-patch:8.0.0788: MS-Windows: cannot build with terminal feature
vim-patch:8.0.0789: splitting terminal window has resizing problems
vim-patch:8.0.0793: using wrong terminal name for terminal window
vim-patch:8.0.0798: no highlighting in a terminal window with a finished job
vim-patch:8.0.0800
vim-patch:8.0.0801: terminal window title says "running" after job exits
vim-patch:8.0.0807: terminal window can't handle mouse buttons
vim-patch:8.0.0813: cannot use a terminal window while the job is running
vim-patch:8.0.0815: terminal window not correctly updated
vim-patch:8.0.0819: cursor not positioned in terminal window
vim-patch:8.0.0820: GUI: cursor in terminal window lags behind
vim-patch:8.0.0823: cannot paste text into a terminal window
vim-patch:8.0.0824: in Terminal mode the cursor and screen gets redrawn
vim-patch:8.0.0826: cannot use text objects in Terminal mode
vim-patch:8.0.0827: Coverity: could leak pty file descriptor
vim-patch:8.0.0829: job running in terminal can't communicate with Vim
vim-patch:8.0.0832: terminal function arguments are not consistent
vim-patch:8.0.0833: terminal test fails
vim-patch:8.0.0836: can abandon a terminal buffer after making a change
vim-patch:8.0.0838: buffer hangs around whem terminal window is closed
vim-patch:8.0.0839: cannot kill a job in a terminal with CTRL-C
vim-patch:8.0.0841: term_getline() may cause a crash
vim-patch:8.0.0842: using slave pty after closing it
vim-patch:8.0.0845: MS-Windows: missing semicolon in terminal code
vim-patch:8.0.0846: cannot get the name of the pty of a job
vim-patch:8.0.0848: using multiple ch_log functions is clumsy
vim-patch:8.0.0849: crash when job exit callback wipes the terminal
vim-patch:8.0.0850: MS-Windows: error message while starting up may be broken
vim-patch:8.0.0852: MS-Windows: possible crash when giving a message on startup
vim-patch:8.0.0854: no redraw after terminal was closed
vim-patch:8.0.0855: MS-Windows: can't get tty name of terminal
vim-patch:8.0.0856: MS-Windows: terminal job doesn't take options
vim-patch:8.0.0857: terminal test fails on MS-Windows
vim-patch:8.0.0859: NULL pointer access when term_free_vterm called twice
vim-patch:8.0.0860: side effects when channel appends to a buffer
vim-patch:8.0.0868: cannot specify the terminal size on the command line
vim-patch:8.0.0873: in terminal cannot use CTRL-\ CTRL-N to start Visual mode
vim-patch:8.0.0888: compiler warnings with 64 bit build
vim-patch:8.0.0889: gcc gives warnings for uninitialized variables
vim-patch:8.0.0891: uninitialized memory use with empty line in terminal
vim-patch:8.0.0897: wrong error message for invalid term_finish value
vim-patch:8.0.0905: MS-Windows: broken multi-byte characters in the console
vim-patch:8.0.0907: with cp932 font names might be misinterpreted
vim-patch:8.0.0911: terminal test takes too long
vim-patch:8.0.0928: MS-Windows: passing arglist to job has escaping problems
vim-patch:8.0.0945: 64-bit compiler warnings
vim-patch:8.0.0949: winpty.dll name is fixed
vim-patch:8.0.0952: has('terminal') does not check existence of dll file
vim-patch:8.0.1028: MS-Windows: viminfo uses $VIM/_viminfo if $HOME not set
vim-patch:8.0.1061: Coverity: no check for NULL command
vim-patch:8.0.1063: Coverity warns for NULL check and array use
vim-patch:8.0.1064: Coverity warns for leaking resource
vim-patch:8.0.1138: click in window toolbar starts Visual mode
vim-patch:8.0.1266: Test_swap_directory was commented out
vim-patch:8.0.1348: make testclean deletes script file on MS-Windows
vim-patch:8.0.1499: out-of-memory situation not correctly handled
vim-patch:8.0.1501: out-of-memory situation not correctly handled
vim-patch:8.0.1524: compiler warnings for uninitialized variables
vim-patch:8.0.1532: compiler warnings without termguicolors feature
vim-patch:8.0.1607: --clean loads user settings from .gvimrc
vim-patch:8.0.1626: compiler warning for possible loss of data
vim-patch:8.0.1654: warnings for conversion of void to function pointer
vim-patch:8.0.1661: warnings from 64 bit compiler
vim-patch:8.0.1676: no compiler warning for wrong printf format
vim-patch:8.0.1677: no compiler warning for wrong format in vim_snprintf()
vim-patch:8.0.1687: 64 bit compiler warnings
vim-patch:8.0.1773: dialog messages are not translated
vim-patch:8.0.1803: warning for uninitialized variable
vim-patch:8.0.1824: Coverity warns for variable that may be uninitialized
vim-patch:8.0.1827: compiler warning for signed/unsigned char pointers

vim-patch:8.1.0023: gcc 8.1 warns for use of strncpy()
vim-patch:8.1.0054: compiler warning for using %ld for "long long"
vim-patch:8.1.0645: Coverity warns for possible use of NULL pointer
vim-patch:8.1.0704: building with Ruby 2.6 gives compiler warnings
vim-patch:8.1.0721: conceal mode is not sufficiently tested
vim-patch:8.1.0725: conceal mode is not completely tested
vim-patch:8.1.0730: compiler warning for get_buf_arg() unused
vim-patch:8.1.0744: compiler warnings for signed/unsigned strings
vim-patch:8.1.0762: compiler warning
vim-patch:8.1.0763: nobody is using the Sun Workshop support
vim-patch:8.1.0773: not all crypt code is tested
vim-patch:8.1.0787: compiler warning for unused function
vim-patch:8.1.0791: a few compiler warnings on VMS
vim-patch:8.1.0801: MinGW: no hint that tests fail because of small terminal
vim-patch:8.1.0838: compiler warning for type conversion
vim-patch:8.1.0962: building with MinGW and static libs doesn't work
vim-patch:8.1.1145: compiler warning for unused function
vim-patch:8.1.1146: in MS-Windows console colors in a terminal window are wrong
vim-patch:8.1.1147: desktop file translations are requiring manual updates
vim-patch:8.1.1149: building desktop files fails with older msgfmt
vim-patch:8.1.1150: generating desktop files not tested on Travis
vim-patch:8.1.1151: build fails when using shadow directory
vim-patch:8.1.1152: compiler warning with VS2019
vim-patch:8.1.1154: getting a newer msgfmt on Travis is too complicated
vim-patch:8.1.1158: json encoded string is sometimes missing the final NUL
vim-patch:8.1.1159: MS-Windows: with a silent (un)install $VIM/_vimrc is removed
vim-patch:8.1.1161: unreachable code
vim-patch:8.1.1163: codecov does not report all the coverage information
vim-patch:8.1.1174: cannot build with Ruby 1.8
vim-patch:8.1.1182: some function prototypes are outdated
vim-patch:8.1.1183: typos in VisVim comments
vim-patch:8.1.1196: parallel build may fail
vim-patch:8.1.1198: bracketed paste may remain active after Vim exists
vim-patch:8.1.1208: links to repository use wrong file name
vim-patch:8.1.1215: "make clean" does not remove generated src/po files
vim-patch:8.1.1217: MS-Windows: no space reserved for font quality name
vim-patch:8.1.1220: build fails on MS-Windows
vim-patch:8.1.1222: build still fails on MS-Windows
vim-patch:8.1.1225: cannot create a pty to use with :terminal on FreeBSD
vim-patch:8.1.1227: duplicate entries in the generate .desktop files
vim-patch:8.1.1229: warning for posix_openpt() not declared
vim-patch:8.1.1233: cannot build tiny version
vim-patch:8.1.1238: MS-Windows: compiler warning for sprintf() format
vim-patch:8.1.1239: key with byte sequence containing CSI does not work
vim-patch:8.1.1240: runtime desktop files are overwritten by build
vim-patch:8.1.1243: compiler warnings for incomplete switch statement
vim-patch:8.1.1246: cannot handle negative mouse coordinate from urxvt
vim-patch:8.1.1255: building desktop files fails on FreeBSD
vim-patch:8.1.1257: MSVC: name of object directory now always right
vim-patch:8.1.1258: the "N files to edit" message can not be surpressed
vim-patch:8.1.1262: cannot simulate a mouse click in a test
vim-patch:8.0.1270: mismatching file name with Filelist
vim-patch:8.1.1273: compiler warning in direct write code
vim-patch:8.1.1277: missing screenshot update
vim-patch:8.1.1282: running make in src/po leaves LINGUAS file behind
vim-patch:8.1.1287: cannot build with +eval but without +mouse
vim-patch:8.1.1290: .hgignore and .gitignore are either distributed or in git
vim-patch:8.1.1294: MS-Windows: Some fonts return wrong average char width
vim-patch:8.0.1298: missing test file
vim-patch:8.1.1301: when compiled with VIMDLL some messages are not shown
vim-patch:8.1.1304: MS-Windows: compiler warning for unused value
vim-patch:8.1.1314: MSVC makefile is not nicely indented
vim-patch:8.1.1315: there is always a delay if a termrequest is never answered
vim-patch:8.1.1317: output from Travis can be improved
vim-patch:8.1.1322: Cygwin makefile is not nicely indented
vim-patch:8.1.1323: 'mouse' option is reset when using GPM mouse
vim-patch:8.1.1324: stray comma in VMS makefile
vim-patch:8.1.1339: installer needs to product name et al.
vim-patch:8.1.1361: Python setuptools don't work with Python 3
vim-patch:8.1.1369: get E484 when using system() during GUI startup
vim-patch:8.1.1370: not using the new github feature for donations
vim-patch:8.1.1377: MS-Windows GUI uses wrong shell command for bash
vim-patch:8.1.1380: MS-Windows building VIMDLL with MSVC: SUBSYSTEM is not set
vim-patch:8.1.1381: MS-Windows: missing build dependency
vim-patch:8.1.1397: build fails in tiny version
vim-patch:8.1.1398: duplicate line in MSVC build file
vim-patch:8.1.1404: cannot change the patch level when building with NSIS
vim-patch:8.1.1153 does not exist or was suppose to be
                   9a419ffb93
                   which is N/A.
vim-patch:8.0.0732: when updating a buffer modeless selection is lost
vim-patch:8.0.0764: 'termkey' does not work yet (already implemented in #1820)
vim-patch:8.0.0766: option test fails with +terminal feature (also about termkey, #1820)
2019-05-28 01:00:56 +02:00
busted/outputHandlers test: Dump $NVIM_LOG_FILE contents (#8926) 2018-08-28 22:13:34 +02:00
ci ci/build.ps1: Respect CMAKE_BUILD_TYPE if provided #9869 2019-04-09 00:17:07 +02:00
cmake Remove support for using jemalloc instead of the system allocator 2019-01-19 18:09:52 -05:00
config cleanup: remove HAVE_SELINUX #10040 2019-05-21 11:15:10 +02:00
contrib Remove support for using jemalloc instead of the system allocator 2019-01-19 18:09:52 -05:00
man vim-patch:8.0.0716: "--clean", 'shadafile' #9907 2019-04-15 21:15:36 +02:00
runtime vim-patch:8.1.0020: cannot tell whether a register is executing or recording 2019-05-26 20:24:11 -04:00
scripts doc #10017 2019-05-25 10:00:41 +02:00
snap dist: snap packaging #7918 2018-01-29 23:02:15 +01:00
src version.c: update [ci skip] (#9875) 2019-05-28 01:00:56 +02:00
test UI/ext_messages: restore kind=quickfix #10067 2019-05-27 00:01:41 +02:00
third-party messages: use proper multiline error message for rpcrequest and API wrappers 2019-05-26 15:42:16 +02:00
unicode vim-patch:8.1.1157: Unicode tables are out of date 2019-04-12 20:07:13 -04:00
.clang-format lint: src/.clang-format 2018-11-28 03:48:06 +01:00
.editorconfig editorconfig: set default tab width to 8 (#9467) 2019-01-07 02:15:19 +01:00
.gitignore API/nvim_set_keymap: minor cleanup 2019-05-12 13:04:48 +02:00
.travis.yml ci: switch to Xcode 10.1 / macOS 10.13 2019-01-17 15:59:44 +01:00
appveyor.yml ci/build.ps1: Respect CMAKE_BUILD_TYPE if provided #9869 2019-04-09 00:17:07 +02:00
BACKERS.md Update backer URL 2015-11-11 19:50:33 -08:00
BSDmakefile build: show a hint for BSD make (#7275) 2017-09-16 10:54:49 +02:00
CMakeLists.txt ci/build.ps1: Respect CMAKE_BUILD_TYPE if provided #9869 2019-04-09 00:17:07 +02:00
codecov.yml CI/codecov: fix invalid yaml [ci skip] 2019-01-21 19:45:47 +01:00
CONTRIBUTING.md doc [ci skip] #9478 2019-01-26 20:38:14 +01:00
ISSUE_TEMPLATE.md doc/API: document indexing behavior #10058 2019-05-26 16:15:20 +02:00
LICENSE LICENSE: add LuaJIT notice. #899 2014-06-30 13:59:56 -04:00
MAINTAIN.md gen_vimdoc.py: support <pre> preformatted text [ci skip] 2019-05-01 00:18:49 +02:00
Makefile build: do not pass empty CMAKE_INSTALL_PREFIX 2019-03-19 02:51:33 +01:00
README.md doc [ci skip] 2019-04-08 03:42:21 +02:00

Neovim

Wiki | Documentation | Chat/Discussion | Twitter

Travis build status AppVeyor build status Codecov coverage Coverity Scan analysis Clang analysis PVS-Studio analysis

Packages Debian CI Downloads

Neovim is a project that seeks to aggressively refactor Vim in order to:

See the Introduction wiki page and Roadmap for more information.

Features

See :help nvim-features for the full list!

Install from package

Pre-built packages for Windows, macOS, and Linux are found on the Releases page.

Managed packages are in Homebrew, Debian, Ubuntu, Fedora, Arch Linux, Gentoo, and more!

Install from source

The build is CMake-based, but a Makefile is provided as a convenience.

make CMAKE_BUILD_TYPE=RelWithDebInfo
sudo make install

To install to a non-default location:

make CMAKE_INSTALL_PREFIX=/full/path/
make install

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
    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.
  • build/compile_commands.json shows the full compiler invocations for each translation unit.

See the Building Neovim wiki page for details.

Transitioning from Vim

See :help nvim-from-vim for instructions.

Project layout

├─ ci/              build automation
├─ cmake/           build scripts
├─ runtime/         user plugins/docs
├─ src/nvim/        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)

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.