Awesome Configurations for C/C++, Zig, Rust, Python, Shell, Web and Lua development in NeoVim
Awesome Neovim Configuration
This repo it to make setting up of [neovim][nvim] >= 0.11 a breeze. The setup is powered and managed by [๐ค lazy.nvim][lazy-nvim] plugin manager
>If you like helix, which I am drifting to gradually, check out my [helix config_][awesome-helix]
โจ 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][lazy-nvim] and the new lua-loader that byte-compiles and caches lua files
๐ Screenshots
๎ C++
โก Zig
๓ฐขฑ Lua
๐ Startup Time
โก๏ธ Requirement
- Neovim >= 0.11 (needs to be built with LuaJIT)
- git >= 2.52 (gitsigns ...)
- tree-sitter >= 0.25 (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 configurationand 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][awesome-nvim]
Follow the steps below to use awesome-neovim
- fork this repo into your account
- Make a backup of your current Neovim files at
$XDGCONFIGHOME/nvimand$XDGDATAHOME/nvim:
mv ~/.config/nvim ~/.config/nvim.bak
mv ~/.local/share/nvim ~/.local/share/nvim.bak
- Clone the repo into
$XDGCONFIGHOME/nvimor$HOME/.config/nvim
git clone https://github.com/${YOUR-USERNAME}/awesome-neovim $XDGCONFIGHOME/nvim
- Start Neovim!
nvim
โ๏ธ For information on how to use [lazy.nvim][lazy-nvim]
You can thoroughly go through awesome-neovim configuration and if more clarification is required read [lazy's][lazy-nvim] README
for help using the various plugins and extensions
:help local-addtions
To view the help pages and instruction manual on the various extensions
[awesome-nvim]: https://github.com/Ultra-Code/awesome-neovim [lazy-nvim]: https://github.com/folke/lazy.nvim [nvim]: https://github.com/neovim/neovim/ [awesome-helix]: https://github.com/Ultra-Code/awesome-helix