AstroVim is an aesthetic and feature-rich neovim config that is extensible and easy to use with a great set of plugins
🌟 Preview
⚡ Requirements
🛠️ Installation
Linux
Make a backup of your current nvim folder
mv ~/.config/nvim ~/.config/nvimbackup
Clone the repository
git clone https://github.com/kabinspace/AstroVim ~/.config/nvim
nvim +PackerSync
📦 Setup
Install LSP
Enter :LspInstall
followed by the name of the server you want to install
Example: :LspInstall pyright
Install language parser
Enter :TSInstall
followed by the name of the language you want to install
Example: :TSInstall python
Manage plugins
Run :PackerClean
to remove any disabled or unused plugins
Run :PackerSync
to update and clean plugins
Update AstroVim
Run :AstroUpdate
to get the latest updates from the repository
✨ Features
- File explorer with Nvimtree
- Autocompletion with Cmp
- Git integration with Gitsigns
- Statusline with Lualine
- Terminal with Toggleterm
- Fuzzy finding with Telescope
- Syntax highlighting with Treesitter
- Formatting and linting with Null-ls
- Language Server Protocol with Native LSP
⚙️ Configuration
User directory is given for custom configuration
-- Set colorscheme colorscheme = "onedark", -- Add plugins plugins = { { "andweeb/presence.nvim" }, { "ray-x/lsp_signature.nvim", event = "BufRead", config = function() require("lsp_signature").setup() end, }, }, -- On/off virtual diagnostics text virtual_text = true, -- Set options set.relativenumber = true -- Set key bindings map("n", "<C-s>", ":w!<CR>", opts) -- Set autocommands vim.cmd [[ augroup packer_conf autocmd! autocmd bufwritepost plugins.lua source <afile> | PackerSync augroup end ]] -- Add formatters and linters -- https://github.com/jose-elias-alvarez/null-ls.nvim null_ls.setup { debug = false, sources = { -- Set a formatter formatting.rufo, -- Set a linter diagnostics.rubocop, }, -- NOTE: You can remove this on attach function to disable format on save on_attach = function(client) if client.resolved_capabilities.document_formatting then vim.cmd "autocmd BufWritePre <buffer> lua vim.lsp.buf.formatting_sync()" end end, }
🗒️ Note
Mappings file is given to learn about the default key bindings
⭐ Credits
Sincere appreciation to the following repositories, plugin authors and the entire neovim community out there that made the development of AstroVim possible.