Skip to content

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

License

Notifications You must be signed in to change notification settings

Ultra-Code/awesome-neovim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

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

⚙️ 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

: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