--- sidebar_position: 2 --- # 🛠️ Installation import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; There are multiple ways to install **lazy.nvim**. The **Structured Setup** is the recommended way, but you can also use the **Single File Setup** if you prefer to keep everything in your `init.lua`. Please refer to the [Configuration](/configuration) section for an overview of all available options. :::tip It is recommended to run `:checkhealth lazy` after installation. ::: :::note In what follows `~/.config/nvim` is your Neovim configuration directory. On Windows, this is usually `~\AppData\Local\nvim`. To know the correct path for your system, run `:echo stdpath('config')`. ::: ```lua title="~/.config/nvim/init.lua" require("config.lazy") ``` ```lua title="~/.config/nvim/lua/config/lazy.lua" -- Bootstrap lazy.nvim local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" if not (vim.uv or vim.loop).fs_stat(lazypath) then local lazyrepo = "https://github.com/folke/lazy.nvim.git" vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath }) end vim.opt.rtp:prepend(lazypath) -- Make sure to setup `mapleader` and `maplocalleader` before -- loading lazy.nvim so that mappings are correct. -- This is also a good place to setup other settings (vim.opt) vim.g.mapleader = " " vim.g.maplocalleader = "\\" -- Setup lazy.nvim require("lazy").setup({ -- highlight-start spec = { -- import your plugins { import = "plugins" }, }, -- highlight-end -- Configure any other settings here. See the documentation for more details. -- colorscheme that will be used when installing plugins. install = { colorscheme = { "habamax" } }, -- automatically check for plugin updates checker = { enabled = true }, }) ``` You can then create your plugin specs in `~/.config/nvim/lua/plugins/`. Each file should return a table with the plugins you want to install. For more info see [Structuring Your Plugins](/usage/structuring)
~/.config/nvim
├── lua
│   ├── config
│   │   └── lazy.lua
│   └── plugins
│       ├── spec1.lua
│       ├── **
│       └── spec2.lua
└── init.lua
```lua title="~/.config/nvim/init.lua" -- Bootstrap lazy.nvim local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" if not (vim.uv or vim.loop).fs_stat(lazypath) then local lazyrepo = "https://github.com/folke/lazy.nvim.git" vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath }) end vim.opt.rtp:prepend(lazypath) -- Make sure to setup `mapleader` and `maplocalleader` before -- loading lazy.nvim so that mappings are correct. -- This is also a good place to setup other settings (vim.opt) vim.g.mapleader = " " vim.g.maplocalleader = "\\" -- Setup lazy.nvim require("lazy").setup({ -- highlight-start spec = { -- add your plugins here }, -- highlight-end -- Configure any other settings here. See the documentation for more details. -- colorscheme that will be used when installing plugins. install = { colorscheme = { "habamax" } }, -- automatically check for plugin updates checker = { enabled = true }, }) ```