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