# LazyVim Neovim config for the lazy powered by [💤 lazy.nvim](https://github.com/folke/lazy.nvim). Can't decide between building a config from scratch or using one of the existing Neovim **_distros_**? With **LazyVim** you don't have to. Configuring **LazyVim** is **exactly the same** as you would configure a config from scratch. You can easily add new plugins, change the config for existing ones or disable plugins. ![image](https://user-images.githubusercontent.com/292349/210136312-c211f781-6d51-46b0-a265-6098bdbb364d.png) ## 🚀 Getting Started You can find a starter template for **LazyVim** [here](https://github.com/LazyVim/starter) **TLDR:** ```lua require("lazy").setup({ spec = { -- import LazyVim plugins { "LazyVim/LazyVim", import = "lazyvim.plugins" }, -- import/override with your plugins { import = "plugins" }, }, defaults = { lazy = true, -- every plugin is lazy-loaded by default version = "*", -- try installing the latest stable version for plugins that support semver }, }) ``` ## ✅ Todo - [ ] documentation - [x] treesitter auto-install seems broken. Switch to `ensure_installed` instead? - [x] list all plugins in readme - [ ] test all-the-things ## Keymaps ### General | Key | Description | Mode | | --- | --- | --- | | ```` | Go to left window | **n** | | ```` | Go to lower window | **n** | | ```` | Go to upper window | **n** | | ```` | Go to right window | **n** | | ```` | Increase window height | **n** | | ```` | Decrease window height | **n** | | ```` | Decrease window width | **n** | | ```` | Increase window width | **n** | | ```` | Move down | **n**, **v**, **i** | | ```` | Move up | **n**, **v**, **i** | | ```` | Prev buffer | **n** | | ```` | Next buffer | **n** | | ``[p`` | Paste below | **n** | | ``]p`` | Paste above | **n** | | ```` | Escape and clear hlsearch | **i**, **n** | | ``n`` | Next search result | **n**, **x**, **o** | | ``N`` | Prev search result | **n**, **x**, **o** | | ```` | Save file | **i**, **v**, **n**, **s** | | ``l`` | Lazy | **n** | | ``fn`` | New File | **n** | | ``xl`` | Open Location List | **n** | | ``xq`` | Open Quickfix List | **n** | | ``tf`` | Format on Save | **n** | | ``ts`` | Spelling | **n** | | ``tw`` | Word Wrap | **n** | | ``tn`` | Line Numbers | **n** | | ``td`` | Diagnostics | **n** | | ``tc`` | Conceal | **n** | | ``gg`` | Lazygit (cwd) | **n** | | ``gG`` | Lazygit (root dir) | **n** | | ``qq`` | Quit all | **n** | | ``hl`` | Highlight Groups at cursor | **n** | | ``ot`` | Terminal (root dir) | **n** | | ``oT`` | Terminal (cwd) | **n** | | ```` | Enter Normal Mode | **t** | | ``ww`` | other-window | **n** | | ``wd`` | delete-window | **n** | | ``w-`` | split-window-below | **n** | | ``w\|`` | split-window-right | **n** | | ``l`` | Last | **n** | | ``f`` | First | **n** | | ```` | New Tab | **n** | | ``]`` | Next | **n** | | ``d`` | Close | **n** | | ``[`` | Previous | **n** | | ``b]`` | Next Buffer | **n** | | ``bb`` | Switch to Other Buffer | **n** | | ``b[`` | Previous Buffer | **n** | | ``` `` | Switch to Other Buffer | **n** | ### LSP | Key | Description | Mode | | --- | --- | --- | | ``cd`` | Line Diagnostics | **n** | | ``cl`` | Lsp Info | **n** | | ``xd`` | Telescope Diagnostics | **n** | | ``gd`` | Goto Definition | **n** | | ``gr`` | References | **n** | | ``gD`` | Goto Declaration | **n** | | ``gI`` | Goto Implementation | **n** | | ``gt`` | Goto Type Definition | **n** | | ``K`` | Hover | **n** | | ``gK`` | Signature Help | **n** | | ``[d`` | Next Diagnostic | **n** | | ``]d`` | Prev Diagnostic | **n** | | ``]e`` | Next Error | **n** | | ``[e`` | Prev Error | **n** | | ``]w`` | Next Warning | **n** | | ``[w`` | Prev Warning | **n** | | ``ca`` | Code Action | **n**, **v** | | ``cf`` | Format Document | **n** | | ``cf`` | Format Range | **v** | | ``cr`` | Rename | **n** | ### Plugins | Key | Description | Mode | | --- | --- | --- | | ``cm`` | [mason.nvim](https://github.com/williamboman/mason.nvim.git) Mason | **n** | | ``bd`` | [mini.bufremove](https://github.com/echasnovski/mini.bufremove.git) Delete Buffer | **n** | | ``bD`` | [mini.bufremove](https://github.com/echasnovski/mini.bufremove.git) Delete Buffer (Force) | **n** | | ``ft`` | [neo-tree.nvim](https://github.com/nvim-neo-tree/neo-tree.nvim.git) NeoTree (root dir) | **n** | | ``fT`` | [neo-tree.nvim](https://github.com/nvim-neo-tree/neo-tree.nvim.git) NeoTree (cwd) | **n** | | ```` | [noice.nvim](https://github.com/folke/noice.nvim.git) Redirect Cmdline | **c** | | ``nl`` | [noice.nvim](https://github.com/folke/noice.nvim.git) Noice Last Message | **n** | | ``nh`` | [noice.nvim](https://github.com/folke/noice.nvim.git) Noice History | **n** | | ``na`` | [noice.nvim](https://github.com/folke/noice.nvim.git) Noice All | **n** | | ``nd`` | [nvim-notify](https://github.com/rcarriga/nvim-notify.git) Delete all Notifications | **n** | | ``sr`` | [nvim-spectre](https://github.com/windwp/nvim-spectre.git) Replace in files (Spectre) | **n** | | ``qs`` | [persistence.nvim](https://github.com/folke/persistence.nvim.git) Restore Session | **n** | | ``ql`` | [persistence.nvim](https://github.com/folke/persistence.nvim.git) Restore Last Session | **n** | | ``qd`` | [persistence.nvim](https://github.com/folke/persistence.nvim.git) Don't Save Current Session | **n** | | ``/`` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) Find in Files (Grep) | **n** | | ```` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) Find Files (root dir) | **n** | | ``fb`` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) Buffers | **n** | | ``ff`` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) Find Files (root dir) | **n** | | ``fF`` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) Find Files (cwd) | **n** | | ``fr`` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) Recent | **n** | | ``gc`` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) commits | **n** | | ``gs`` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) status | **n** | | ``ha`` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) Auto Commands | **n** | | ``hc`` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) Commands | **n** | | ``hf`` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) File Types | **n** | | ``hh`` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) Help Pages | **n** | | ``hk`` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) Key Maps | **n** | | ``hm`` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) Man Pages | **n** | | ``ho`` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) Options | **n** | | ``hs`` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) Search Highlight Groups | **n** | | ``ht`` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) Telescope | **n** | | ``sb`` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) Buffer | **n** | | ``sc`` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) Command History | **n** | | ``sg`` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) Grep (root dir) | **n** | | ``sG`` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) Grep (cwd) | **n** | | ``sm`` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) Jump to Mark | **n** | | ``,`` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) Switch Buffer | **n** | | ``:`` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) Command History | **n** | | ``ss`` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) Goto Symbol | **n** | | ``]t`` | [todo-comments.nvim](https://github.com/folke/todo-comments.nvim.git) Next todo comment | **n** | | ``[t`` | [todo-comments.nvim](https://github.com/folke/todo-comments.nvim.git) Previous todo comment | **n** | | ``xt`` | [todo-comments.nvim](https://github.com/folke/todo-comments.nvim.git) Todo Trouble | **n** | | ``xtt`` | [todo-comments.nvim](https://github.com/folke/todo-comments.nvim.git) Todo Trouble | **n** | | ``xT`` | [todo-comments.nvim](https://github.com/folke/todo-comments.nvim.git) Todo Telescope | **n** | | ``xx`` | [trouble.nvim](https://github.com/folke/trouble.nvim.git) Document Diagnostics (Trouble) | **n** | | ``xX`` | [trouble.nvim](https://github.com/folke/trouble.nvim.git) Workspace Diagnostics (Trouble) | **n** | | ``]]`` | [vim-illuminate](https://github.com/RRethy/vim-illuminate.git) Next Reference | **n** | | ``[[`` | [vim-illuminate](https://github.com/RRethy/vim-illuminate.git) Prev Reference | **n** | ## Plugins - [alpha-nvim](https://github.com/goolord/alpha-nvim) - [catppuccin](https://github.com/catppuccin/nvim) - [cmp-buffer](https://github.com/hrsh7th/cmp-buffer) - [cmp-emoji](https://github.com/hrsh7th/cmp-emoji) - [cmp-nvim-lsp](https://github.com/hrsh7th/cmp-nvim-lsp) - [cmp-path](https://github.com/hrsh7th/cmp-path) - [cmp_luasnip](https://github.com/saadparwaiz1/cmp_luasnip) - [dressing.nvim](https://github.com/stevearc/dressing.nvim) - [flit.nvim](https://github.com/ggandor/flit.nvim) - [friendly-snippets](https://github.com/rafamadriz/friendly-snippets) - [gitsigns.nvim](https://github.com/lewis6991/gitsigns.nvim) - [indent-blankline.nvim](https://github.com/lukas-reineke/indent-blankline.nvim) - [lazy.nvim](https://github.com/folke/lazy.nvim) - [LazyVim](https://github.com/LazyVim/LazyVim) - [leap.nvim](https://github.com/ggandor/leap.nvim) - [lualine.nvim](https://github.com/nvim-lualine/lualine.nvim) - [LuaSnip](https://github.com/L3MON4D3/LuaSnip) - [mason-lspconfig.nvim](https://github.com/williamboman/mason-lspconfig.nvim) - [mason.nvim](https://github.com/williamboman/mason.nvim) - [mini.ai](https://github.com/echasnovski/mini.ai) - [mini.bufremove](https://github.com/echasnovski/mini.bufremove) - [mini.comment](https://github.com/echasnovski/mini.comment) - [mini.indentscope](https://github.com/echasnovski/mini.indentscope) - [mini.pairs](https://github.com/echasnovski/mini.pairs) - [mini.surround](https://github.com/echasnovski/mini.surround) - [neo-tree.nvim](https://github.com/nvim-neo-tree/neo-tree.nvim) - [neoconf.nvim](https://github.com/folke/neoconf.nvim) - [neodev.nvim](https://github.com/folke/neodev.nvim) - [noice.nvim](https://github.com/folke/noice.nvim) - [nui.nvim](https://github.com/MunifTanjim/nui.nvim) - [null-ls.nvim](https://github.com/jose-elias-alvarez/null-ls.nvim) - [nvim-bufferline.lua](https://github.com/akinsho/nvim-bufferline.lua) - [nvim-cmp](https://github.com/hrsh7th/nvim-cmp) - [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - [nvim-navic](https://github.com/SmiteshP/nvim-navic) - [nvim-notify](https://github.com/rcarriga/nvim-notify) - [nvim-spectre](https://github.com/windwp/nvim-spectre) - [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - [nvim-treesitter-textobjects](https://github.com/nvim-treesitter/nvim-treesitter-textobjects) - [nvim-ts-context-commentstring](https://github.com/JoosepAlviste/nvim-ts-context-commentstring) - [nvim-web-devicons](https://github.com/nvim-tree/nvim-web-devicons) - [persistence.nvim](https://github.com/folke/persistence.nvim) - [plenary.nvim](https://github.com/nvim-lua/plenary.nvim) - [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim) - [todo-comments.nvim](https://github.com/folke/todo-comments.nvim) - [tokyonight.nvim](https://github.com/folke/tokyonight.nvim) - [trouble.nvim](https://github.com/folke/trouble.nvim) - [vim-illuminate](https://github.com/RRethy/vim-illuminate) - [vim-startuptime](https://github.com/dstein64/vim-startuptime) - [which-key.nvim](https://github.com/folke/which-key.nvim)