Awesome Neovim Configuration
This repo it to make setting up of neovim >= 0.9 a breeze. The setup is powered and managed by ๐ค lazy.nvim plugin manager
NOTE For the previous config setup with paq.nvim checkout paq-branch
โจ Features Supported
- โก zig, ๓ฐฑ C , ๎ C++, ๓ฐขฑ lua and all other language compilers
- ๐ฆ linters and static analysis through null-ls
- ๐ฅ lsp servers configured with nvim-lspconfig
- ๐งน autocompletion, formatters and all other features supported by neovim's builtin lsp
- ๐ฆธ Any build system
- โด๏ธ Treesitter syntax highlighting
- ๐ฅ Transform your Neovim editor into a full-fledged IDE
- ๐ค Easily customize and extend config
- ๐ Blazingly fast using ๐ค lazy.nvim and the new lua-loader that byte-compiles and caches lua files
๐ Screenshots
๎ C++
โก Zig
๓ฐขฑ Lua
๐ Startup Time
โก๏ธ Requirement
- Neovim >= 0.9.0 (needs to be built with LuaJIT)
- git >= 2.40.0 (gitsigns ...)
- tree-sitter >= 0.20.8 (to enable automatically installing missing parsers when entering buffers)
- a Nerd Font (optional, for nvim-tree, lualine, bufferline)
NOTE the languages supported out of the box are zig, c++, c, lua, bash/zsh, glsl, json But support for other languages like(js, ts, html5+, css3+, vue, markdown, nix) can easily be add by using its required lsp server configuration and installing the server and other accompanying tools for development like linters, static analysers, formatter
๐ Directory structure
๐ ~/.config/nvim
โโโ ๐ ftplugin
โ โโโ ๐ lua
โ โ โโโ ๎ mapping.lua
โ โโโ ๎ gitcommit.lua
โ โโโ ๎ help.lua
โ โโโ ๎ zsh.lua
โโโ ๐ lua
โ โโโ ๐ config
โ โ โโโ ๎ autocmds.lua
โ โ โโโ ๎ defaults.lua
โ โ โโโ ๎ init.lua
โ โ โโโ ๎ keymaps.lua
โ โ โโโ ๎ lazy.lua
โ โ โโโ ๎ options.lua
โ โ โโโ ๎ syntax.lua
โ โ โโโ ๎ utils.lua
โ โโโ ๐ plugins
โ โโโ ๎ cmp.lua
โ โโโ ๎ colorscheme.lua
โ โโโ ๎ editor.lua
โ โโโ ๎ gitsigns.lua
โ โโโ ๎ lsp.lua
โ โโโ ๎ neorg.lua
โ โโโ ๎ snip.lua
โ โโโ ๎ telescope.lua
โ โโโ ๎ tree.lua
โ โโโ ๎ treesitter.lua
โ โโโ ๎ ui.lua
โโโ ๎ init.lua
โโโ ๎ lazy-lock.json
โโโ ๎ LICENSE
โโโ ๏ README.md
ftplugin
directory contains files for setting options
or mappings
specific to filetypes
lua/config
directory contains editor autocmds
, keymaps
, options
, defaults
, syntax files
, utils fn's
and
lazy.nvim
configuration
lua/plugins
directory contains all plugins
configurations and their mappings
init
initializing/start point for nvim editor
๐ Getting Started
You can find awesome-neovim here
Follow the steps below to use awesome-neovim
-
fork this repo into your account
GitHub how to fork a repository
-
Make a backup of your current Neovim files at
$XDG_CONFIG_HOME/nvim
and$XDG_DATA_HOME/nvim
:mv ~/.config/nvim ~/.config/nvim.bak mv ~/.local/share/nvim ~/.local/share/nvim.bak
-
Clone the repo into
$XDG_CONFIG_HOME/nvim
or$HOME/.config/nvim
git clone https://github.com/${YOUR-USERNAME}/awesome-neovim $XDG_CONFIG_HOME/nvim
-
Start Neovim!
nvim
lazy.nvim
โ๏ธ For information on how to useYou can thoroughly go through awesome-neovim configuration and if more clarification is required read lazy's README
for help using the various plugins and extensions
:help local-addtions
To view the help pages and instruction manual on the various extensions
๐ Credit
- Huge credit to @folke, I learnt a lot from his lazy config repo
- Big Shout Out to the creators of the various plugins which make nvim terrific
- Another to all the creators of the various neovim extensions.
And Last but not the least God Bless The Vim && Neovim Community for this hyperextensible and hackable text editor