Just discovered Neovim today. I can't believe how much I've been missing out!
- Exactly like VIM, but faster
- Better performances
- Works out-of-the-box with my extensive VIM configuration
- Installation and configuration was a breeze, don't need to change anything
- Did I mention that it was faster?
And obviously it's free and open-source.
Here's a quick installation guide if you want to get started: just copy-paste this in ~/.config/nvim/init.vim
set runtimepath^=~/.vim runtimepath+=~/.vim/after
let &packpath = &runtimepath
source ~/.vimrc
This will make Neovim pick up your current VIM config. So if you end up not liking Neovim for some reason, your VIM config is still intact. You can even have both installed at the same time.
So, why aren't you on Neovim yet?
Top comments (10)
Why not? Because I don't understand the configuration, to be honest. I've tried it and it's too much like magic, and the things that are supposed to be great about it fall into precisely three camps:
So it's a learning curve for no benefit. I might try again sometime I have a weekend to play around.
EDIT: I just installed it, aliased it to
vim
and used your configuration snippet (though my .vimrc is actually ~/.vim/vimrc but that's a niggle).Tell me if you notice performance improvements, cause I definitely did :)
I've noticed one thing: when starting or stopping nvim it often hangs completely. I have to repeatedly bash ctrl-c until it comes to life or gives me a terminal back. I'm not sure what's causing that, there are no messages about it, but it's presumably something to do with my collection of plugins.
Hu that's weird. I didn't have that issue.
Probably different plugins conflicting. It does indicate that its vim-ness isn't 100%, which is a downside, but it's probably easy to track down and comment out the offending plugin.
That has not been my experience. I have seen micro-benchmarks of LuaJIT outperforming vimscript, but in practice, neovim was noticeably slower on larger files. I've spent days trying to identify the root cause and disabled or removed many lua-based plugins (e.g. tree-sitter, lsp, lualine, ...etc) and was able to narrow it down to neovim's syntax parser. I've tried ruling out unoptimized colorschemes (esp. ones that have a lot of function calls to set colors), syntax files due to inefficient regex pattern matching,
:syntax sync minlines=256
and:set synmaxcol=1500
but it all came down to:syntax off
. Disabling it brought neovim's (v0.7.0) performance on par with syntax-enabled Vim (8.2.5050).The gap will widen over time, esp. that Vim is coming out with vim9script and neovim has been working on making lua a first-class configuration language. More plugins are coming out now requiring luarocks dependencies.
I was on Neovim since 0.4 (~2019) until 0.6 (~2022) and I switched back to Vim.
I was using Neovim because it was interchangeable with Vim, but Neovim ecosystem is moving at a frantic pace with everything being re-written in Lua and supporting Neovim-only APIs. I believe (I hope I am wrong) Vim's upcoming vim9script will be the final nail in the coffin of the interop story between Vim and Neovim (ref).
Considering:
I would much rather use Vim and write Vimscript, even if
vim9script
wasn't a thing, just because of how stable Vim has been and I don't feel like I am missing anything in Vim-land, besides some eye-candy which isn't very portable anyway.It almost feels like NeoVim's decision to maintain interop with Vim at this point is forcing it to be in this awkward middle-of-the-road position, where it tries to be as close as possible to Vim but different enough than Vim. Instead, a clean break from Vim would allow Neovim to design and implement clean/easy/pleasant APIs that are more suitable for their future direction, than trying to maintain compatibility with Vim that is getting more tenuous with every release.
0: Compare this contrived lua:
to its vimscript counterpart:
Great arguments! I have nothing to reply to this except that you make a lot of sense and the performance gain I noticed on my own setup might vary with different conditions.
Who said I ain't running neovim 😁.
Because I use mostly default vim and choose to optimize other things.
Vim is enough fast for me , and short )