WindowsmacOSLinux

Where Is the Neovim Config File?

Neovim init.lua and plugin data paths on Windows, macOS and Linux, and how to confirm the active config with :checkhealth.

Last updated

Neovim reads a single entry point called init.lua (older setups used init.vim) inside an nvim config folder. Plugins, language servers and shada history live nearby but separate. The config folder location is the only path you usually need.

Unsure which file is active? Run :echo stdpath('config') inside Neovim and it prints the exact directory. That beats guessing between .config, AppData and legacy .vim paths. Back up the whole nvim folder to move your setup. Version managers like Bob keep separate binaries but share this same config path.

Where Neovim stores this, by platform

Windows
%localappdata%\nvim\init.lua

Paste %localappdata%\nvim into Explorer. Plugin data goes to %localappdata%\nvim-data. The old ~/.vimrc is ignored by Neovim unless you source it manually.

macOS
~/.config/nvim/init.lua

Same XDG layout as Linux. Data and plugins sit under ~/.local/share/nvim. LazyVim and LunarVim users keep extra state there too.

Linux
~/.config/nvim/init.lua

Respects $XDG_CONFIG_HOME when set, so check that variable first on customized systems. Run nvim --headless +checkhealth to verify the config loads cleanly.

Frequently asked questions

init.vim or init.lua, which one does Neovim use?

init.lua takes precedence on modern installs. Legacy init.vim still works for Vimscript setups. If both exist, Neovim loads init.lua and skips init.vim, so remove the stale one.

Where do Neovim plugins get installed?

Under the data directory: ~/.local/share/nvim on Mac and Linux, %localappdata%/nvim-data on Windows. Delete the plugin subfolder there to force a clean reinstall from your plugin manager.

Notice an outdated path? Let us know.