A curated list of Vimscript (VimL) and Lua resources, tools, and utilities for Vim and Neovim plugin development and configuration.
Vimscript is the built-in scripting language of Vim. Lua is an embedded scripting language in Neovim, introduced in version 0.5 with the vim.api interface. This list focuses on the languages themselves — learning resources, development tools, libraries, and plugins written in these languages.
- Vimscript Language Resources
- Vim9 Script
- Lua Language Resources
- Lua for Neovim
- Official Documentation
- Plugin Managers
- Neovim Distributions & Starter Configs
- Plugin Development Tools
- Testing Frameworks
- Static Analysis & Formatting
- Style Guides
- Lua Libraries & Utility Modules
- Vimscript Libraries & Utility Modules
- Plugins Written in Lua
- Plugins Written in Vimscript
- Cross-Compatible Plugins (Vim & Neovim)
- Treesitter & Syntax Highlighting
- Note-Taking & Markup
- Community & Discovery
- Related Awesome Lists
Official references and tutorials for learning Vimscript (VimL):
- Learn Vimscript the Hard Way — Book by Steve Losh covering Vimscript as a programming language.
- Learn Vimscript in Y Minutes — Single-page syntactic overview.
- Vim User Manual: Write a Vim Script (
:help usr_41) — Official tutorial: variables, expressions, control flow, functions, autocommands. - Vim eval.txt (
:help eval) — Canonical reference for Vimscript expression evaluation. Describes types (Numbers, Strings, Lists, Dictionaries, Funcrefs, Blobs), operators, and built-in functions. - Wikibooks: VimL Script Language — Free chapter covering VimL variables, conditionals, loops, functions, strings.
- Vimscript Reference: Developer's Guide — Covers mappings, functions, and custom commands.
Vim 9's revised scripting language with type declarations and compiled execution:
- Vim9 Script Documentation (
:help vim9) — Official Vim reference for Vim9 syntax and semantics, including typed variables, compile-time checks, and class/object syntax. - Learn Vim9 Script in Y Minutes — Single-page overview of Vim9 syntax with comparisons to Vim legacy script.
- Vim9 Script Style Guide — Community style guide for Vim9 script covering naming conventions, formatting, and plugin organization.
Resources for learning Lua as used in Neovim (Neovim uses LuaJIT, based on Lua 5.1):
- Programming in Lua — Official Lua book by language creator Roberto Ierusalimschy. First edition free online. Covers types, control structures, functions, tables, metatables, coroutines.
- Chapter 13: Metatables and Metamethods —
__index,__newindex,__tostring,__call, operator overloading, weak tables. - Chapter 16: Object-Oriented Programming — OOP patterns using metatables, used in most Neovim plugin architectures.
- Chapter 13: Metatables and Metamethods —
- Lua 5.1 Reference Manual — Language specification for Lua 5.1. Available inside Neovim via
:h luaref. - LuaJIT — Just-In-Time compiler for Lua used by Neovim.
- Lua Users Wiki — Community-maintained tutorials, libraries, and examples.
- Learn Lua in Y Minutes — Lua syntax reference.
Applying Lua specifically within Neovim:
- Neovim Lua Guide (archived) — Community-maintained guide covering Lua basics, Neovim-specific patterns, the
vimmodule, and plugin structure. Content now incorporated into:help lua-guide. - Plugin Structure, Setup Pattern & Custom Commands — Video covering the
setup()function pattern, module organization, and custom command registration in Neovim. - Neovim Source: runtime/lua/vim/_editor.lua — Source of Neovim's Lua stdlib (
vimmodule). Reference for understanding the API. - nvim-lua-guide-zh — Chinese translation of the nvim-lua-guide with additional API function explanations.
- Writing Neovim Plugins: Beginner Guide — Walkthrough covering signature help, completion setup, and Neovim Lua API usage.
- Developing Neovim Plugins in Lua (YouTube) — Video tutorial covering full plugin development including Treesitter integration.
- Neovim Lua Guide (
:help lua-guide) — Official guide for using Lua in Neovim: configuration, keymaps, autocommands, API usage. - Neovim Lua Plugin Development (
:help lua-plugin) — Official guide for developing Lua plugins: structure, metadata, lazy loading, distribution. - Neovim Lua API (
:help lua) — Documentation for Neovim's Lua integration. - Neovim API Reference (
:help vim.api) — Neovim API reference accessible from Lua. - Neovim Vimscript Compatibility (
:help vim_diff) — Differences between Vim and Neovim. - Vim Help System — Official Vim documentation hosted online.
- Vimscript Reference (
:help eval) — Vim's expression and scripting evaluation reference. - Vim Write Plugin (
:help write-plugin) — Official Vim guide to writing plugins. - Vim User Manual (
:help user-manual) — Vim user guide organized by topic. - Neovim Documentation — Complete Neovim documentation.
Tools for installing, updating, and managing Vim/Neovim plugins:
- vim-plug — Plugin manager with parallel installation, on-demand loading, and rollback support. Configured in Vimscript.
- Vundle — Vim plugin manager. Uses
Plugindeclarations in.vimrc. - Pathogen — Prepends directories to
'runtimepath'. Requires manual cloning of plugin repositories. - dein.vim — Plugin manager with lazy loading support, TOML-based configuration. Successor to NeoBundle.
- Vim 8+ Native Packages — Vim 8.0+ built-in package management via
pack/directory.
- lazy.nvim — Plugin manager with dependency resolution, lazy loading, and a UI for managing plugins. Configured in Lua.
- packer.nvim — Plugin manager using Neovim's native package system with Lua DSL configuration. Supports compilation of plugin specs.
- mini.deps — Plugin management module from the mini.nvim collection.
Pre-configured Neovim setups demonstrating Lua configuration patterns:
- LazyVim — Neovim configuration built on lazy.nvim. Provides a plugin extension system.
- Kickstart.nvim — Single-file Neovim configuration (~500 lines) with commented examples of plugin manager, LSP, Treesitter, completion, and telescope.
- NvChad — Neovim configuration with custom UI, plugin management via lazy.nvim, and theme support.
- LunarVim — Neovim distribution with its own CLI tool (
lvim), built-in plugin management, and IDE-like defaults. - AstroNvim — Neovim configuration focused on providing a complete IDE experience with LSP, DAP, and Treesitter pre-configured.
- Mini.Starter — Configurable start screen, can serve as a minimal starting point.
Tools for writing, debugging, and maintaining Vim/Neovim plugins:
- neodev.nvim — Type checking, signature help, and autocompletion for the Neovim Lua API during plugin development.
- lazydev.nvim — Follow-up to neodev.nvim. Lua type checking and autocompletion for Neovim development.
- nvim-luaref — Displays built-in Lua function reference documentation within Neovim.
- nlua.nvim — Lua development tools for Neovim with debugging capabilities and REPL integration.
- nvim-plugin-dev-handbook — Guide for Neovim plugin development best practices.
- scriptease.vim — Commands for Vimscript development:
:Scriptnames,:Messages,:Verbose,:Time. Includes profiling. - vim-test — Run tests for Vimscript/Neovim plugins from the editor.
- vader.vim — BDD-style testing framework for Vimscript plugins.
- vim-themis — Vim script testing framework with various assertion styles.
Frameworks for writing and running tests for Vim/Neovim plugins:
- plenary.test_harness — Neovim Lua test runner. Provides
describe()/it()blocks, async test support, and temporary directory management. - busted — General-purpose Lua testing framework. Compatible with Neovim plugin testing.
- luassert — Assertion library for Lua. Commonly paired with busted.
- vader.vim — BDD-style testing framework for Vimscript plugins.
- vim-themis — Vim script testing framework with various assertion styles.
- vim-vspec — Vimscript testing framework.
Tools for analyzing and formatting Vimscript and Lua code:
- stylua — Lua code formatter. Written in Rust. Configurable indent width, column width, and quote style.
- luacheck — Static analyzer for Lua code. Detects unused variables, globals, unreachable code, and style issues.
- selene — Lua linter written in Rust. Provides type checking and configurable lint rules.
- lua-language-server — Language Server Protocol implementation for Lua. Provides diagnostics, autocompletion, and go-to-definition.
- vimlint — Lint checker for Vim script. Detects unused variables, undefined functions, and style issues.
- vimlparser — Vim script parser library. Used by vimlint and other Vimscript analysis tools.
- Google Vimscript Style Guide — Indentation, line length, naming conventions, function structure, plugin layout.
- Google Vimscript Style Guide (Full) — Extended version with additional examples.
- Vim9 Script Style Guide — Naming conventions, formatting, and plugin organization for Vim9 script.
Lua modules providing reusable functionality for Neovim plugin development:
- plenary.nvim — Utility library providing: async job control (
plenary.job), path/file manipulation (plenary.path), testing framework (plenary.test_harness), module reloading (plenary.reload), JSON/XML parsing, and data structures. - nvim-nio — Async I/O library for Neovim. Provides an
async/awaitAPI for non-blocking operations. - dressing.nvim — Overrides
vim.ui.selectandvim.ui.inputwith alternative UI implementations. - persistence.nvim — Session management with auto-save and restore.
- snacks.nvim — Collection of QoL features: dashboard, picker, notifier, terminal, indentation, scope, words.
- mini.nvim — Library of 40+ independent Lua modules covering pairs, surround, completion, align, comment, and more.
- neoconf.nvim — Manage global and project-local Neovim settings with JSON/JSONC files.
- nabla.nvim — Take notes with LaTeX and code support directly in Neovim.
- sqlite.lua — SQLite binding for Neovim. Provides a Lua interface for SQLite databases.
Vimscript libraries providing reusable functionality:
- vital.vim — Module library for Vim plugins. Provides modules for data structures (
Data.List,Data.Set,Data.OrderedSet), strings (String,String.Builders), process management (Process), mapping utilities, option parsing, and prelude functions. - ingo-library — Autoload library of common Vimscript functions used across multiple plugins. Includes functions for text manipulation, pattern matching, window/buffer management, and plugin interaction.
- vimproc.vim — External command execution library for Vim. Provides functions for running commands in the background.
- plib.vim — Python standard library-style functions applied to Vim objects (lists, strings, tables).
Plugins implemented primarily in Lua, demonstrating Lua plugin development patterns:
- lualine.nvim — Status line plugin. Configurable sections (mode, filename, git branch, diagnostics). Supports themes and custom components.
- noice.nvim — Replaces Vim's default UI for messages, command line, and popup menu. Provides configurable message history and cmdline UI.
- nvim-notify — Notification manager. Supports grouping, icons, timeout, and animation stages. Overrides
vim.notify. - nvim-tree.lua — File explorer. Displays directory tree with file icons and git status indicators.
- oil.nvim — File explorer that renders the file system as an editable buffer. File operations are performed by editing buffer text.
- neo-tree.nvim — File tree explorer. Supports file system, buffers, and git sources.
- alpha-nvim — Dashboard/start screen. Configurable with buttons, headers, file lists, and session management.
- dashboard-nvim — Dashboard plugin. Supports themes, recent files, and custom sections.
- indent-blankline.nvim — Displays indentation guides and scope lines. Supports Treesitter-aware scope detection.
- which-key.nvim — Displays available keybindings in a popup panel as the user types a prefix.
- hydra.nvim — Creates keybinding modes with multiple heads.
- nvim-ufo — Code folding. Uses LSP and Treesitter for fold detection.
- nvim-scrollbar — Scrollbar. Displays diagnostic, search, and git signs.
- no-neck-pain.nvim — Centers the main buffer and dims surrounding windows.
- telescope.nvim — Fuzzy finder. Built on a picker/sorter/previewer architecture. Provides built-in finders for files, buffers, grep, LSP symbols, help tags, and more.
- telescope-fzf-native.nvim — Native C-based FZF sorter.
- telescope-live-grep-args.nvim — Extends grep with argument parsing.
- telescope-zf-native.nvim — Native zf sorter.
- telescope-project.nvim — Project directory switcher.
- telescope-ui-select.nvim — Replaces
vim.ui.selectwith a telescope picker. - telescope-frecency.nvim — Sorts results by frequency and recency.
- fzf-lua — Fuzzy finder built as a Lua wrapper around the
fzfcommand-line tool. - mini.pick — Fuzzy picker from the mini.nvim collection. Uses a
pick()function with a source and action model. - nvim-spectre — Panel-based search and replace. Uses ripgrep as the search backend.
- nvim-cmp — Autocompletion engine. Supports multiple sources via separate source plugins.
- cmp-nvim-lsp — LSP completion source.
- cmp-buffer — Buffer word completion source.
- cmp-path — File system path completion source.
- cmp_luasnip — LuaSnip snippet source.
- cmp-cmdline — Command line completion source.
- cmp-emoji — Emoji completion source.
- cmp-nvim-lua — Neovim Lua API completion source.
- cmp-under-comparator — Sorts items starting with underscores below other items.
- LuaSnip — Snippet engine. Supports VS Code snippet format, nested snippets, conditionals, and dynamic snippets.
- coq_nvim — Autocompletion engine using SQLite for candidate storage.
- nvim-surround — Add, delete, and change surround characters (parentheses, quotes, HTML tags).
- Comment.nvim — Line and block commenting. Uses Treesitter for language-aware comment strings.
- nvim-autopairs — Auto-pairs for brackets, quotes, and tags. Configurable rules and conditional pairing.
- leap.nvim — Cursor motion. Assigns labels to visible targets for jumping across lines and windows.
- flash.nvim — Navigation. Provides labeled jumping, Treesitter-aware motions, and search integration.
- Hop.nvim — Cursor motion. Displays hints at visible positions for jumping.
- flit.nvim — Extends native
f/F/t/Tmotions with leap.nvim-based multi-line jumping. - multicursors.nvim — Multiple cursors. Integrates with hop.nvim for cursor placement.
- yanky.nvim — Yank and put. Maintains a yank ring, supports clipboard, and provides a picker to browse yank history.
- todo-comments.nvim — Highlights and searches for
TODO,FIXME,HACK,NOTE, and other comment markers. Provides Telescope integration. - smartcolumn.nvim — Displays a colorcolumn at a configurable column width.
- nvim-lspconfig — Default configurations for language servers used with Neovim's built-in LSP client.
- mason.nvim — Package manager for LSP servers, DAP servers, linters, and formatters.
- mason-lspconfig.nvim — Integration between mason.nvim and nvim-lspconfig.
- mason-tool-installer.nvim — Automatically installs mason.nvim packages on Neovim startup.
- lsp-zero.nvim — Pre-configured LSP setup bundling nvim-lspconfig, nvim-cmp, and related plugins.
- conform.nvim — Code formatter. Integrates with LSP formatters and CLI formatters.
- null-ls.nvim — Injects diagnostics, code actions, and formatting from CLI tools into Neovim's LSP system.
- none-ls.nvim — Fork of null-ls.nvim. Maintains compatibility with the null-ls API.
- lspsaga.nvim — LSP UI: hover, code actions, rename, diagnostics, and call hierarchy in floating windows.
- lsp-lines — Displays LSP diagnostics using
virt_texton the line below the error. - trouble.nvim — Displays diagnostics, references, LSP symbols, quickfix, and location lists in a formatted list.
- fidget.nvim — Displays LSP server progress indicators in the status line.
- lsp_signature.nvim — Displays function signature hints while typing.
- refactoring.nvim — Refactoring operations: extract to function/variable, inline variable, toggle anonymous function.
- nvim-dap — Debug Adapter Protocol client. Provides breakpoints, step execution, variable inspection, and watch expressions.
- nvim-dap-ui — UI for nvim-dap. Displays variables, breakpoints, watches, and a REPL.
- nvim-dap-virtual-text — Displays variable values as virtual text inline during debug sessions.
- one-small-step-for-vimkind — DAP adapter for Lua code running inside Neovim.
- gitsigns.nvim — Git integration. Displays diff signs, provides stage/unstage hunks, blame preview, and hunk navigation.
- neogit — Git interface. Provides interactive staging, committing, branching, rebasing, and log viewing.
- diffview.nvim — Tab-based diff viewer. Supports file history, merge conflict resolution, and range diffs.
- octo.nvim — GitHub integration. Browse, review, and manage issues and pull requests.
- lazygit.nvim — Opens lazygit (terminal Git UI) inside Neovim.
- git.nvim — Git plugin providing blame, browse, commit, and diff functionality.
- toggleterm.nvim — Manages persistent terminal buffers. Supports floating windows, split terminals, and lazy loading.
- overseer.nvim — Task runner and job management. Provides a task template system and UI for running build commands.
- project.nvim — Project management. Auto-detects project directories, provides Telescope integration.
- harpoon — File bookmarking. Marks files for access with numbered shortcuts.
- harpoon2 — Updated version of harpoon with revised API and UI.
- grapple.nvim — File tagging and navigation. Supports scopes, git integration, and persistent tags.
- marks.nvim — Mark management. Displays marks in the sign column, provides navigation and deletion commands.
- clipboard-image.nvim — Pastes images from clipboard into buffers. Supports Markdown, Org, and AsciiDoc.
- registers.nvim — Displays register contents in a popup window.
- aerial.nvim — Displays a symbol outline (functions, classes, variables) in a sidebar. Uses LSP or Treesitter.
- nvim-bqf — Modifies Vim's built-in quickfix window with preview, filtering, and fzf integration.
- symbols-outline.nvim — Tree view of document symbols using LSP.
Plugins implemented primarily in Vimscript, demonstrating Vimscript plugin development patterns:
- NERDTree — File system tree browser. Supports file operations (open, delete, rename, copy).
- vim-dirvish — File browser that replaces Vim's built-in netrw. Displays directory listing in a normal buffer.
- vim-vinegar — Extends Vim's netrw file browser with additional navigation and file operation features.
- fern.vim — File explorer. Supports multiple sources and custom actions.
- vim-startify — Start screen. Displays recent files, sessions, and bookmarks.
- vim-surround — Add, delete, and change surround characters.
- vim-commentary — Comment/uncomment lines with
gccandgcmotions. - vim-sneak —
f/F/t/Tmotions that work across lines. - vim-easymotion — Cursor motion using labeled targets.
- vim-multiple-cursors — Multiple cursor selection.
- undotree — Visualizes Vim's undo history as a tree. Allows diff between undo states.
- gundo.vim — Graphical undo tree browser.
- vim-fugitive — Git wrapper. Provides commands for
:Git,:Gread,:Gwrite,:Gdiff,:Gblame, and more. - vim-rhubarb — Fugitive extension for GitHub. Enables
:GBrowseto open files on GitHub. - vim-gitgutter — Shows Git diff signs in the sign column.
- vim-signify — Shows diff signs from Git, SVN, or Mercurial in the sign column.
- vim-sleuth — Auto-detects
shiftwidthandtabstopfrom file content. - vim-speeddating — Extends
Ctrl-A/Ctrl-Xto increment/decrement dates, times, fractions, and more. - vim-abolish — Substitution and abbreviation. Handles case variations (snake_case, camelCase, TitleCase).
- vim-unimpaired — Complementary key mappings for built-in Vim commands.
- vim-repeat — Enables
.(dot command) to repeat custom mappings from other plugins. - vim-move — Move lines up/down with
Alt+j/Alt+k. - vim-bookmarks — Bookmark management.
- vim-signature — Toggle, navigate, and display marks in the sign column.
- vim-yoink — Yank ring and clipboard manager.
- vim-obsession — Session management. Wraps Vim's
:mksessionwith modified defaults. - ALE (Asynchronous Lint Engine) — Linting and fixing engine. Runs linters asynchronously. Supports 100+ tools across 50+ filetypes.
Plugins that work in both Vim and Neovim, demonstrating cross-compatible development patterns:
- vim-airline — Status/tab line plugin. Provides extensions for branch, diagnostics, file encoding, and more.
- vim-airline-themes — Collection of color scheme files.
- lightline.vim — Status line plugin. Configurable left/right components.
- indentLine — Displays thin vertical lines at each indentation level.
- vim-which-key — Vimscript port of which-key functionality.
- vim-textobj-user — Framework for creating custom text objects.
- vim-textobj-indent — Text object for indented blocks.
- vim-textobj-syntax — Text object for syntax regions.
- vim-textobj-function — Text object for functions.
- vim-textobj-argparam — Text object for function arguments.
- targets.vim — Additional text objects. Adds pairs, separators, and alphanumeric targets.
- vim-polyglot — Collection of language packs. Bundles syntax files for 100+ languages.
- vim-matchup —
%matching. Works with Treesitter and supports multi-word matching. - vim-markdown — Markdown syntax highlighting and folding.
- vimwiki — Personal wiki. Supports Markdown, HTML, and custom syntax.
- tcomment_vim — Flexible commenting plugin. Supports block and line comments.
- nerdcommenter — Commenting plugin with filetype support.
- vim-auto-pairs — Auto-pairs for brackets, quotes, and tags.
- vim-visual-multi — Multiple cursors plugin.
- vim-tmux-navigator — Navigation between Vim splits and tmux panes.
- vimux — Runs Vim commands in a tmux pane.
- neoterm — Manages terminal REPL sessions integrated with Vim/Neovim.
- vim-slime — Sends text from Vim to a tmux pane (or other terminal multiplexer).
- vim-clipboard — Clipboard integration.
- emmet-vim — HTML/CSS abbreviation expansion.
- ctrlp.vim — Full-path fuzzy file, buffer, and tag finder.
- fzf.vim — Vimscript wrapper around
fzf. Provides commands (:Files,:Buffers,:Lines,:Tags). - denite.nvim — Unified interface for gathering and displaying information from any source. Written in Python3 and Vimscript.
- coc.nvim — IntelliSense engine. Runs as a Node.js process. Provides LSP, snippets, completion, diagnostics, and code actions.
- coc-marketplace — Plugin marketplace browser.
- coc-json — JSON language support.
- coc-tsserver — TypeScript/JavaScript language support.
- vim-dadbod — Database interface. Connects to databases via URL strings.
- vim-dadbod-ui — UI for vim-dadbod. Provides a query buffer and results display.
- vim-qf — Modifies Vim's quickfix window with navigation and usability features.
- vim-adequate-yank — Yank/put management.
- jedi-vim — Python autocompletion using the Jedi library.
- vim-go — Go development plugin. Provides syntax, linting, testing, and code generation.
- vim-ruby — Ruby syntax highlighting and indentation.
- vim-elixir — Elixir syntax highlighting.
- typescript-vim — TypeScript syntax highlighting.
- vim-jsx — JSX syntax highlighting.
- vim-toml — TOML syntax support.
- rust.vim — Rust syntax highlighting and configuration.
Treesitter-related plugins for Neovim (nvim-treesitter provides the core integration):
- nvim-treesitter — Treesitter integration for Neovim. Provides syntax highlighting, incremental selection, indentation, and text objects.
- nvim-treesitter-textobjects — Treesitter-based text objects for functions, classes, parameters, loops, conditionals.
- nvim-treesitter-context — Displays code context (function/class/if block) at the top of the window as the cursor scrolls.
- playground.nvim — Treesitter syntax tree viewer. Displays the parsed AST with query highlighting.
- ts-comments.nvim — Treesitter-aware comment string detection.
- nvim-treesitter-refactor — Treesitter-based refactoring module. Provides rename and extract functionality.
- rainbow-delimiters.nvim — Rainbow-colored bracket/parenthesis highlighting using Treesitter parsing.
- vim-polyglot — Collection of language packs for Vim/Neovim. Bundles syntax files for 100+ languages. Written in Vimscript.
Plugins demonstrating text markup integration with Vimscript/Lua patterns:
- vimwiki — Personal wiki. Supports Markdown, HTML, and custom syntax. Written in Vimscript.
- vim-markdown — Markdown syntax highlighting and folding. Written in Vimscript.
- markdown-preview.nvim — Markdown preview plugin. Opens rendered Markdown in a web browser with live reload.
- render-markdown.nvim — Renders Markdown with Treesitter: checkboxes, code blocks, headings, tables, and callouts.
- obsidian.nvim — Integration for Obsidian.md vaults. Supports note linking, tags, templates, daily notes, and YAML frontmatter.
- neorg — Note-taking and task management. Uses a custom file format (
.norg) parsed by Treesitter. - orgmode.nvim — Emacs Org-mode implementation. Supports agendas, TODO tracking, clocking, and Treesitter parsing.
- Vim Awesome — Plugin directory sourced from GitHub and Vim.org. Provides usage statistics from dotfiles repositories.
- Neovimcraft — Directory of Neovim plugins with search and category filtering.
- r/neovim — Neovim community on Reddit.
- r/vim — Vim community on Reddit.
- Neovim Discourse — Official Neovim forum.
- Vim Stack Exchange — Q&A site for Vim users.
- Neovim GitHub Discussions — Official Neovim discussions on GitHub.
- Neovim Matrix Chat — Real-time Neovim chat on Matrix.
- Vim Dev Mailing List — Vim development mailing list.
- awesome-neovim — List of Neovim plugins, tools, and resources.
- awesome-vim — Vim plugin list organized by category.
- vim-plugin-list — JSON-formatted list of Vim/Neovim plugins.
- awesome-lua — Lua ecosystem resources, including a Neovim section.
- neovim-plugin-list — GitHub topic page for Lua-based Neovim plugins.
- kickstart.nvim — Single-file Neovim configuration with documentation. Suitable as a learning resource.
Contributions are welcome. Please follow these guidelines:
- Add resources related to Vimscript or Lua for Vim/Neovim.
- Include a factual description of what the resource does.
- Avoid subjective claims.
- Prefer linking to the primary source repository.
- Note whether a plugin is Vim-compatible, Neovim-only, or Lua-only.
To the extent possible under law, the authors have waived all copyright and related or neighboring rights to this work.
