neovim 0.2.1 releases: Vim-fork focused on extensibility and usability

Neovim is a project that seeks to aggressively refactor Vim source code in order to achieve the following goals:

  • Simplify maintenance to improve the speed that bug fixes and features get merged.
  • Split the work among multiple developers.
  • Enable the implementation of new/modern user interfaces without any modifications to the core source.
  • Improve the extensibility power with a new plugin architecture based on coprocesses. Plugins will be written in any programming language without any explicit support from the editor.

By achieving those goals new developers will soon join the community, consequently improving the editor for all users.

It is important to emphasize that this is not a project to rewrite Vim from scratch or transform it into an IDE (though the new features provided will enable IDE-like distributions of the editor). The changes implemented here should have little impact on Vim’s editing model or Vimscript in general. Most Vimscript plugins should continue to work normally.

The following topics contain brief explanations of the major changes (and motivations) that will be performed in the first iteration.

Neovim Features

Neovim 0.2.1 released.


0e873a3 Lua(Jit) built-in #4411
5b32bce Windows: `:terminal` #7007
7b0ceb3 UI/API: externalize cmdline #7173
b67f58b UI/API: externalize wildmenu #7454
b23aa1c UI: 'winhighlight' #6597
17531ed UI: command-line coloring (`:help input()-highlight`) #6364
244a1f9 API: execute lua directly from the remote api #6704
45626de API: `get_keymap()` #6236
db99982 API: `nvim_get_hl_by_name()`, `nvim_get_hl_by_id()` #7082
dc68538 menu_get() function #6322
9db42d4 :cquit : take an error code argument #7336
9cc185d job-control: serverstart(): support ipv6 #6680
1b7a9bf job-control: sockopen() #6594
6efe84a clipboard: fallback to tmux clipboard #6894
6016ac2 clipboard: customize clipboard with `g:clipboard` #6030
3a86dd5 ruby: override ruby host via `g:ruby_host_prog` #6841
16cce1a debug: $NVIM_LOG_FILE #6827
0cba3da `:checkhealth` built-in, validates $VIMRUNTIME #7399
105d680 TUI: more terminals, improve scroll/resize #6816
cb912a3 :terminal : handle F1-F12, other keys #7241
619838f inccommand: improve performance #6949
04b3c32 inccommand: Fix matches for zero-width #7487
60b1e8a inccommand: multiline, other fixes #7315
f1f7f3b inccommand: Ignore leading modifiers in the command #6967
1551f71 inccommand: fix 'gdefault' lockup #7262
6338199 API: bufhl: support creating new groups #7414
541dde3 API: allow K_EVENT during operator-pending
8c732f7 terminal: adjust for 'number' #7440
5bec946 UI: preserve wildmenu during jobs/events #7110
c349083 UI: disable 'lazyredraw' during ui_refresh. #6259
51808a2 send FocusGained/FocusLost event instead of pseudokey #7221
133f8bc shada: preserve unnamed register on restart #4700
1b70a1d shada: avoid assertion on corrupt shada file #6958
9f534f3 mksession: Restore tab-local working directory #6859
de1084f fix buf_write() crash #7140
7f76986 syntax: register 'Normal' highlight group #6973
6e7a8c3 RPC: close channel if stream was closed #7081
85f3084 clipboard: disallow recursion; show hint only once #7203
8d1ccb6 clipboard: performance, avoid weird edge-cases #7193
01487d4 'titleold' #7358
01e53a5 Windows: better path-handling, separator (slash) hygiene #7349
0f2873c Windows: multibyte startup arguments #7060
9ff0cc7 :terminal : start in normal-mode #6808
032b088 lower priority of 'cursorcolumn', 'colorcolumn' #7364
2a3bcd1 RPC: Don't delay notifications when request is pending #6544
023f67c :terminal : Do not change 'number', 'relativenumber' #6796
1ef2d76 socket.c: Disable Nagle's algorithm on TCP sockets #6915
6720fe2 help: `K` tries Vim help instead of manpage #3104
7068370 help, man.vim: change "outline" map to `gO` #7405


Leave a Reply

Your email address will not be published. Required fields are marked *