LazyVim is a Neovim setup powered by [๐ค lazy.nvim](https://github.com/folke/lazy.nvim)
to make it easy to customize and extend your config.
Rather than having to choose between starting from scratch or using a
pre-made distro, LazyVim offers the best of both worlds - the flexibility
to tweak your config as needed, along with the convenience of a pre-configured setup.


## โจ Features
- ๐ฅ Transform your Neovim into a full-fledged IDE
- ๐ค Easily customize and extend your config with [lazy.nvim](https://github.com/folke/lazy.nvim)
- ๐ Blazingly fast
- ๐งน Sane default settings for options, autocmds, and keymaps
- ๐ฆ Comes with a wealth of plugins pre-configured and ready to use
## โก๏ธ Requirements
- Neovim >= **0.9.0** (needs to be built with **LuaJIT**)
- Git >= **2.19.0** (for partial clones support)
- a [Nerd Font](https://www.nerdfonts.com/) **_(optional)_**
- a **C** compiler for `nvim-treesitter`. See [here](https://github.com/nvim-treesitter/nvim-treesitter#requirements)
## ๐ Getting Started
You can find a starter template for **LazyVim** [here](https://github.com/LazyVim/starter)
Try it with Docker
```sh
docker run -w /root -it --rm alpine:edge sh -uelic '
apk add git lazygit fzf curl neovim ripgrep alpine-sdk --update
git clone https://github.com/LazyVim/starter ~/.config/nvim
cd ~/.config/nvim
nvim
'
```
Install the LazyVim Starter
- Make a backup of your current Neovim files:
```sh
mv ~/.config/nvim ~/.config/nvim.bak
mv ~/.local/share/nvim ~/.local/share/nvim.bak
```
- Clone the starter
```sh
git clone https://github.com/LazyVim/starter ~/.config/nvim
```
- Remove the `.git` folder, so you can add it to your own repo later
```sh
rm -rf ~/.config/nvim/.git
```
- Start Neovim!
```sh
nvim
```
Refer to the comments in the files on how to customize **LazyVim**.
---
There's a great video created by [@elijahmanor](https://github.com/elijahmanor) with a walkthrough to get started.
[](https://www.youtube.com/watch?v=N93cTbtLCIM)
[@dusty-phillips](https://github.com/dusty-phillips) wrote a comprehensive book called
[LazyVim for Ambitious Developers](https://lazyvim-ambitious-devs.phillips.codes)
available for free online.
## ๐ File Structure
The files under config will be automatically loaded at the appropriate time,
so you don't need to require those files manually.
**LazyVim** comes with a set of default config files that will be loaded
**_before_** your own. See [here](https://github.com/LazyVim/LazyVim/tree/main/lua/lazyvim/config)
You can add your custom plugin specs under `lua/plugins/`. All files there
will be automatically loaded by [lazy.nvim](https://github.com/folke/lazy.nvim)
~/.config/nvim
โโโ lua
โย ย โโโ config
โย ย โย ย โโโ autocmds.lua
โย ย โย ย โโโ keymaps.lua
โย ย โย ย โโโ lazy.lua
โย ย โย ย โโโ options.lua
โย ย โโโ plugins
โย ย โโโ spec1.lua
โย ย โโโ **
โย ย โโโ spec2.lua
โโโ init.lua
## โ๏ธ Configuration
Refer to the [docs](https://lazyvim.github.io)