bernardassan
awesome-neovim
Lua

Awesome Configurations for C/C++, Zig, Rust, Python, Shell, Web and Lua development in NeoVim

Last updated Jun 29, 2026
239
Stars
135
Forks
1
Issues
0
Stars/day
Attention Score
72
Language breakdown
No language data available.
โ–ธ Files click to expand
README

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++

c++ with code action c++ with errors

โšก Zig

Zig(onedark colorscheme) with error Zig(onedark colorscheme) struct hovered

๓ฐขฑ Lua

Lua with with errors Lua with preview definition

๐Ÿš€ Startup Time

startup time with zig

โšก๏ธ 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 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][awesome-nvim]

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 $XDGCONFIGHOME/nvim and $XDGDATAHOME/nvim:
mv ~/.config/nvim ~/.config/nvim.bak
  mv ~/.local/share/nvim ~/.local/share/nvim.bak
  • Clone the repo into $XDGCONFIGHOME/nvim or $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

๐Ÿ‘ 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
๐Ÿ”— More in this category

ยฉ 2026 GitRepoTrend ยท bernardassan/awesome-neovim ยท Updated daily from GitHub