awesome-neovim/README.md
2024-01-05 15:53:31 +07:00

129 KiB
Raw Blame History

Awesome Neovim Awesome

Collections of awesome Neovim plugins. Mostly targeting Neovim specific features.

Neovim is a Vim-based text editor engineered for extensibility and usability, to encourage new applications and contributions.

Contents

Plugin Manager

  • lewis6991/pckr.nvim - Spiritual successor of wbthomason/packer.nvim.
  • savq/paq-nvim - Neovim package manager written in Lua.
  • NTBBloodbath/cheovim - Neovim configuration switcher written in Lua. Inspired by chemacs.
  • chiyadev/dep - An alternative to packer.nvim. It was built to be even better and easier to use. Context can be found here.
  • folke/lazy.nvim - A modern plugin manager, featuring a graphical interface, async execution, a lockfile and more 💤.
  • roobert/activate.nvim - A plugin installation system designed to complement folke/lazy.nvim.
  • abeldekat/lazyflex.nvim - An addon for folke/lazy.nvim. Facilitates the testing and troubleshooting of a Neovim configuration.
  • nvim-neorocks/rocks.nvim - A modern approach to plugin management using Luarocks, inspired by Cargo.

LSP

(requires Neovim 0.5)

LSP Installer

Diagnostics

Completion

AI

  • Robitx/gp.nvim - ChatGPT like sessions and instructable text/code operations in your favorite editor.
  • dpayne/CodeGPT.nvim - Provides commands to interact with ChatGPT, the focus is around code related usages.
  • jackMort/ChatGPT.nvim - Effortless Natural Language Generation with OpenAI's ChatGPT API.
  • CamdenClark/flyboy - Simple interaction with ChatGPT in a markdown buffer. Supports GPT-4 and Azure OpenAI.
  • gsuuon/llm.nvim - Integrate LLM's via a prompt builder interface. Multi-providers including OpenAI (+ compatibles), PaLM, HuggingFace and local engines like llamacpp.
  • dense-analysis/neural - Integrate LLMs for generating code, interacting with chat bots, and more.
  • jpmcb/nvim-llama - LLM (Llama 2 and llama.cpp) wrappers.
  • David-Kunz/gen.nvim - Generate text using LLMs (via Ollama) with customizable prompts.

Programming Languages Support

Golang

YAML

Web Development

Markdown and LaTeX

Language

Syntax

Snippet

Register

Marks

  • cbochs/grapple.nvim - Provides tagging, cursor tracking, and immediate navigation to important project files.
  • chentoast/marks.nvim - A better user experience for viewing and interacting with Vim marks.
  • ThePrimeagen/harpoon - A per project, auto updating and editable marks utility for fast file navigation.
  • ofirgall/open.nvim - Open the current word with custom openers, GitHub shorthand for example.
  • LeonHeidelbach/trailblazer.nvim - TrailBlazer introduces a stack based mark system that enables a completely new dynamic and super fast workflow using project wide marks.
  • tomasky/bookmarks.nvim - Bookmarks with global file storage, written in Lua.

Fuzzy Finder

  • nvim-telescope/telescope.nvim - Telescope.nvim is a highly extendable fuzzy finder over lists. Built on the latest awesome features from Neovim core. Telescope is centered around modularity, allowing for easy customization.
  • vijaymarupudi/nvim-fzf - A Lua API for using FZF (Neovim >= 0.5). Allows for full asynchronicity for UI speed and usability.
  • camspiers/snap - An extensible fuzzy finder. Similar to Telescope, and optimized for performance, especially when grepping in large codebases.
  • ibhagwan/fzf-lua - The Lua version of fzf.vim, high-performance and fully async, supports nvim-web-devicons, git indicators, LSP, quickfix/location lists and more. Also supports skim as its fzf binary.
  • jvgrootveld/telescope-zoxide - Telescope integration for zoxide, a smart directory picker that tracks your usage.
  • echasnovski/mini.nvim#mini.fuzzy - Module of mini.nvim with functions to perform fuzzy matching of one string to others along with fast Telescope sorter.
  • axkirillov/easypick.nvim - Easypick lets you easily create Telescope pickers from arbitrary console commands.
  • linrongbin16/fzfx.nvim - FZF-based fuzzy finder running on a dynamic engine that parsing user query and selection on every keystroke.
  • echasnovski/mini.nvim#mini.pick - Module of mini.nvim with general purpose interactive non-blocking picker that has one window design, toggleable preview, flexible and fast default match, and much more.
  • echasnovski/mini.nvim#mini.extra - Module of mini.nvim with extra functionality for its modules. Contains 20+ 'mini.pick' pickers, 'mini.ai' textobjects, and more.
  • fdschmidt93/telescope-egrepify.nvim - Telescope plugin for better rg flags in live_grep.

File Explorer

Project

Color

Colorscheme

Tree-sitter Supported Colorscheme

Tree-sitter is a new system introduced in Neovim 0.5 that incrementally parses your code into a tree that works, even with errors in your syntax. These colorschemes have specifically set colors for Tree-sitter highlight groups. Vim colorschemes will work with the new groups out of the box.

Lua Colorscheme

These colorschemes may not specialize in Tree-sitter directly but are written in Lua.

Colorscheme Creation

  • tjdevries/colorbuddy.nvim - A colorscheme helper. Written in Lua! Quick & Easy Color Schemes 😄.
  • norcalli/nvim-base16.lua - Programmatic Lua library for setting base16 themes.
  • rktjmp/lush.nvim - Define Neovim themes as a DSL in Lua, with real-time feedback.
  • roobert/palette.nvim - A beautiful, versatile, systematic, theme system.
  • Iron-E/nvim-highlite - A colorscheme generator that is "lite" on logic for the developer.
  • echasnovski/mini.nvim#mini.base16 - Module of mini.nvim with fast implementation of base16 theme for manually supplied palette.
  • ThemerCorp/themer.lua - A simple highlighter plugin for neovim. It has a huge collection of colorschemes. It also has ability to create colorschemes for Vim/Neovim and other supported apps (such as kitty and alacritty).
  • echasnovski/mini.nvim#mini.colors - Module of mini.nvim to tweak and save any color scheme. Also can animate transition and convert between some color spaces.
  • echasnovski/mini.nvim#mini.hues - Module of mini.nvim to generate configurable color scheme. Takes only background and foreground colors as required arguments. Can adjust number of hues for non-base colors, saturation, accent color, plugin integration.

Colorscheme Switchers

  • 4e554c4c/darkman.nvim - Follow the system dark-mode setting on Linux.
  • f-person/auto-dark-mode.nvim - Follow the system appearance on macOS.
  • zaldih/themery.nvim - A new way to change the colorscheme on the fly like in vscode.
  • linrongbin16/colorbox.nvim - Load all the ultra colorschemes into your Neovim player! It collects all the most popular colorschemes, installs them, and allows you to play them with multiple playback settings.
  • CWood-sdf/pineapple - Install any colorscheme in your config without leaving your terminal. Collects every colorscheme on the internet and allows you to preview them all before installing.

Bars and Lines

Statusline

Tabline

Cursorline

Startup

Icon

Media

Note Taking

Utility

Terminal Integration

Debugging

Quickfix

Deployment

Test

Code Runner

Neovim Lua Development

Fennel

Dependency Management

Git

GitHub

Motion

Treesitter Based

Keybinding

  • folke/which-key.nvim - Neovim plugin that shows a popup with possible keybindings of the command you started typing.
  • echasnovski/mini.nvim#mini.clue - Module of mini.nvim to show next key clues. Has opt-in triggers, shows next key information after customizable delay, allows hydra-like submodes, and more.
  • mrjones2014/legendary.nvim - Define your keymaps, commands, and autocommands as simple Lua tables, and create a legend for them at the same time (like VS Code's Command Palette), integrates with which-key.nvim.
  • Iron-E/nvim-cartographer - a more convenient :mapping syntax for Lua environments.
  • b0o/mapx.nvim - A simpler key mapping API that mimics Neovim's :map-family of commands. Integrates with which-key.nvim.
  • LionC/nest.nvim - Lua utility to map keys concisely using cascading trees. Also allows binding Lua functions to keys.
  • LinArcX/telescope-command-palette.nvim - Lua plugin to create key-bindings and watch them with telescope.
  • slugbyte/unruly-worker - A ridiculously fun alternative keymap for the workman keyboard layout with Neovim features like LSP support, built and configured with Lua.
  • FeiyouG/commander.nvim - Create and manage keybindings and commands in a more organized manner and search them quickly through Telescope.
  • anuvyklack/hydra.nvim - Create custom submodes and menus. Port of Emacs Hydra.
  • anuvyklack/keymap-amend.nvim - Amend the existing keymap.
  • max397574/better-escape.nvim - Create shortcuts to escape insert mode without getting delay.
  • Nexmean/caskey.nvim - Utility to keymappings configuration using declarative cascading trees, optionally integrates with which-key.
  • Wansmer/langmapper.nvim - Auto translating your mappings for non-English input methods.
  • tris203/hawtkeys.nvim - Suggest new easy-to-hit keymaps and find issues with your current keymap configurations.

Mouse

Scrolling

Scrollbar

Editing Support

Comment

Formatting

Indent

Command Line

Session

Remote Development

Split and Window

Tmux

Game

Competitive Programming

Workflow

Preconfigured Configuration

  • pgosar/CyberNvim - The world's simplest and most extensible Neovim distribution.
  • sontungexpt/stinvim - Ready Neovim's configuration for fullstack developers.
  • Abstract-IDE/Abstract - Abstract, The Neovim configuration to achieve the power of Modern IDE.
  • SpaceVim/SpaceVim - A community-driven modular Vim/Neovim distribution, like spacemacs but for Vim/Neovim.
  • CosmicNvim/CosmicNvim - CosmicNvim is a lightweight and opinionated Neovim config for web development, specifically designed to provide a 💫 COSMIC programming experience!
  • artart222/CodeArt - A fast general-purpose IDE written entirely in Lua with an installer for Linux/Windows/macOS and built in :CodeArtUpdate command for updating it.
  • LazyVim/LazyVim - Full-fledged IDE powered by lazy.nvim to make it easy to customize and extend your config.
  • crispybaccoon/chaivim - Easily configurable distro with solid defaults and a cozy editor experience.
  • NTBBloodbath/doom-nvim - Port of the doom-emacs framework, its goal is to add useful functions to Neovim to start working in a stable and efficient development environment without spending a lot of time configuring everything.
  • crivotz/nv-ide - Neovim custom configuration, oriented for full stack developers (rails, ruby, php, html, css, SCSS, JavaScript).
  • LunarVim/LunarVim - This project aims to help one transition away from VSCode, and into a superior text editing experience.
  • hackorum/VapourNvim - A Neovim config for THE ULTIMATE Vim IDE-like experience.
  • vi-tality/neovitality - A full-featured Neovim distribution, packaged with Nix Flake for easy installation and reproducibility.
  • siduck76/NvChad - An attempt to make Neovim cli as functional as an IDE while being very beautiful and less bloated.
  • nvoid-lua/nvoid - Simple Neovim config written in Lua with all the modern features available in any IDE
  • cstsunfu/.sea.nvim - A modular Neovim configuration with beautiful UI and some useful features(Pomodoro Clock, Window Number).
  • shaeinst/roshnivim - Roshnivim, can be called neovim's distro, is a predefined configs so that you don't need 1000hr to setup neovim as an IDE.
  • AstroNvim/AstroNvim - AstroNvim is an aesthetic and feature-rich Neovim config that is extensible and easy to use with a great set of plugins.
  • shaunsingh/nyoom.nvim - Blazing fast, configurable, minimal and lispy neovim config written in Fennel. Base config for users to extend and add upon, leading to a more unique editing experience.
  • jrychn/moduleVim - A very easy to use for backend and frontend, install lsp automatically.
  • askfiy/nvim - An excellent Neovim configuration, which is as powerful as Vscode, is lightning fast .
  • imbacraft/dusk.nvim - Dusk is a lightweight, aesthetically minimal Neovim config, written in Lua, able to provide for web and Java development.
  • nvim-lua/kickstart.nvim - A launch point for your personal Neovim configuration.
  • cunderw/nvim - Neovim custom configuration, focused on JS/TS, Go, and Java development. Very IDE like.
  • otavioschwanck/mood-nvim - Ready to use configuration for Ruby on Rails, JavaScript and Typescript.
  • ldelossa/nvim-ide - A full featured IDE layer heavily inspired by VSCode.
  • jonathandion/web-dev.nvim - Small, simple and flexible configuration for web development .
  • linrongbin16/lin.nvim - A highly configured Neovim distribution integrated with tons of utilities for development, inspired by spf13-vim.
  • doctorfree/nvim-lazyman - Neovim configuration manager and modular configuration, supports over 40 preconfigured configurations.
  • NormalNvim/NormalNvim - Focused on stability for your daily work. From the creator of Compiler.nvim.
  • chrisgrieser/nvim-kickstart-python - A launch point for your Neovim configuration for Python.
  • mrcjkb/kickstart-nix.nvim - A simple Nix flake template repo for Neovim derivations, with the goal of simplifying the migration from existing Neovim configurations.

External

These tools are used externally to Neovim to enhance the experience.

Version Manager

Boilerplate

OS-specific

Wishlist

Have a problem a plugin can solve? Add it to the nvim-lua wishlist.

UI

Neovim supports a wide variety of UI's. You can find them listed on the Neovim wiki

Starter Templates

Vim

Resource

  • Neovimcraft - A site dedicated to searching specific plugins and guides for building plugins in Lua.
  • Dotfyle - Dotfyle is a site for sharing and discovering Neovim configs and plugins.