GitPedia

Awesome neovim

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

From bernardassanΒ·Updated June 28, 2026Β·View on GitHubΒ·

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 The project is written primarily in Lua, distributed under the GNU General Public License v3.0 license, first published in 2020. Key topics include: awesome-neovim, lspconfig, lua, neovim, neovim-config.

Latest release: v0.5.0β€” Rewrite of configuration using lazy.nvim as plugin manager
April 16, 2023View Changelog β†’

Awesome Neovim Configuration

This repo it to make setting up of neovim >= 0.11 a breeze.
The setup is powered and managed by πŸ’€ lazy.nvim plugin manager

If you like helix, which I am drifting to gradually, check out my helix config

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

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

<details><summary>Follow the steps below to use <b>awesome-neovim</b> </summary>
  • 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:

    sh
    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

    sh
    git clone https://github.com/${YOUR-USERNAME}/awesome-neovim $XDG_CONFIG_HOME/nvim
  • Start Neovim!

    sh
    nvim
</details>

βš™οΈ For information on how to use lazy.nvim

You 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

zsh
: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

Contributors

Showing top 1 contributor by commit count.

View all contributors on GitHub β†’

This article is auto-generated from bernardassan/awesome-neovim via the GitHub API.Last fetched: 6/28/2026