After the official version of Neovim 0.5.x was launched, LSP (Language Server Protocol) was built in, and the code prompt experience has been on par with VSCode. Lua has become the first-class language of the editor, and the configuration is easier to understand. Many VIM plug-ins have Lua native versions, and the configuration is not so hard-core, making Vim more modern and easier to use. Update: the latest stable version v0.6 of NeoVim has been released ! BREAKING CHANGES
- 32-bit windows builds are no longer provided.
- build deps: use libuv 1.42.0 upstream for WIN32 (#15889) (f6c0a37), closes #15889
- removes Windows 7 support
- removes support for mouse and alternate buffers in TUI for Windows 8 and 8.1
- lsp/diagnostic: highlight groups and signs for LSP diagnostics renamed (e.g. LspDiagnosticsDefaultWarning to DiagnosticWarn) (a5bbb93)
- diagnostic: make DiagnosticChanged a first class autocmd (#16098) (150a592), closes #16098
- an User LspDiagnosticsChanged autocommands are not supported. Use the new first-class DiagnosticChanged event instead.
- lua: register_keystroke_callback => on_key (#15460) (69fe427)
See more features here
The reason why I changed from Vim to NeoVIm:
-
The configuration and setup of Neovim is more flexible, and expansion is more convenient. Besides, start faster.
-
The completion jump is smarter, faster, and supports more programming languages. As long as the LSP supports it, neovim supports it.
-
Syntax highlight rendering is faster and more accurate, and you will never see a blank piece of code again.
-
Lua as the first programming language of NeoVim.
-
Embedded terminal inside Nvim, floating window, multi-threaded asynchronous IO and more...
- First uninstall the old version of NeoVim. Example in fedora"
sudo dnf remove neovim
- Then install the latest NeoVim (now is v0.6) form NeoVim:
- Download nvim.appimage
- Run
chmod u+x nvim.appimage && ./nvim.appimage
- If your system does not have FUSE you can extract the appimage:
./nvim.appimage --appimage-extract
./squashfs-root/AppRun --version
- Optional: exposing nvim globally.
mv squashfs-root /
ln -s /squashfs-root/AppRun /usr/bin/nvim
nvim
This is the basic configuration of NeoVim.
├── autoload
│ └── plug.vim
├── init_1.vim
├── init.vim # Entry file, which is responsible for loading all files in the lua folder
├── lua # All lua configuration-file
│ ├── basic.lua # Basic configuration of NeoVim
│ ├── keybindings.lua # Hotkey Mapping
│ ├── lsp # Embeded LSP
│ │ ├── cpp.lua
│ │ ├── language_servers.lua
│ │ ├── lua.lua
│ │ ├── nvim-cmp.lua
│ │ ├── nvim-lspconfig.lua
│ │ ├── rust.lua
│ │ ├── setup.lua
│ │ └── ui.lua
│ ├── plugin-config # Where the plugins store
│ │ ├── bufferline.lua
│ │ ├── comment.lua
│ │ ├── nvim-autopairs.lua
│ │ ├── nvim-colorizer.lua
│ │ ├── nvim-tree.lua
│ │ ├── nvim-treesitter.lua
│ │ ├── rust-tools.lua
│ │ ├── surround.lua
│ │ ├── telescope.lua
│ │ └── which-key.lua
│ ├── plugins.lua # Plugins-Management
│ └── utils.lua
└── plugin
└── packer_compiled.lua
to be continue ...