Compatibility
Neovim’s own reference says editor and Vimscript features are mostly identical to Vim, with the exception of Vim9script. An existing Vim setup can be loaded from Neovim’s config file, so you do not have to rewrite it before you start. Where the two differ, the vim-differences page is the complete list.
Before you switch
The official guide is a short sequence:
-
Create your
init.vimfrom inside Neovim with:exe 'edit' stdpath('config') .. '/init.vim', then:write ++p. -
Put these lines in it, so Neovim reads your Vim runtime directories and your
vimrc:set runtimepath^=~/.vim runtimepath+=~/.vim/after let &packpath = &runtimepath source ~/.vimrc -
Run
:restart. Your existing Vim config is loaded.
Some features need extra software; the guide points at provider-python and provider-clipboard for what that is.
Pitfalls
- Vim9script is not supported. Plugins and config written in it will not run, and the migration guide does not mention this.
- Some Vim options are gone. The guide’s example is
'ttymouse', removed because mouse support is always enabled when possible. If you share onevimrcbetween both editors, guard Vim-only settings withif !has('nvim'), and Neovim-only ones withif has('nvim')or a check such asexists(':tnoremap'). - Neovim uses its own locations:
$XDG_CONFIG_HOME/nvim/init.viminstead of.vimrc, and a binary ShaDa file instead of the.viminfotext file. The'viminfo'option is kept as an alias for'shada'. - On Windows the config lives under
~/AppDatarather than~/.config. To share one config across machines, create~/AppData/Local/nvim/init.vimcontaining onlysource ~/.config/nvim/init.vim. - The
'compatible'option was removed: Neovim is always “nocompatible”.