echasnovski / mini.nvim

Library of 40+ independent Lua modules improving overall Neovim (version 0.8 and higher) experience with minimal effort
MIT License
4.45k stars 171 forks source link
lua mini-nvim neovim neovim-plugin


GitHub license GitHub tag Current version

Library of 40+ independent Lua modules improving overall Neovim (version 0.8 and higher) experience with minimal effort. They all share same configuration approaches and general design principles.

Think about this project as "Swiss Army knife" among Neovim plugins: it has many different independent tools (modules) suitable for most common tasks. Each module can be used separately without any startup and usage overhead.

If you want to help this project grow but don't know where to start, check out contributing guides or leave a Github star for 'mini.nvim' project and/or any its standalone Git repositories.

Table of contents

Installation

There are two branches to install from:

Here are code snippets for some common installation methods:

-- Put this at the top of 'init.lua'
local path_package = vim.fn.stdpath('data') .. '/site'
local mini_path = path_package .. '/pack/deps/start/mini.nvim'
if not vim.loop.fs_stat(mini_path) then
  vim.cmd('echo "Installing `mini.nvim`" | redraw')
  local clone_cmd = {
    'git', 'clone', '--filter=blob:none',
    -- Uncomment next line to use 'stable' branch
    -- '--branch', 'stable',
    'https://github.com/echasnovski/mini.nvim', mini_path
  }
  vim.fn.system(clone_cmd)
  vim.cmd('packadd mini.nvim | helptags ALL')
end
Branch Code snippet
Main { 'echasnovski/mini.nvim', version = false },
Stable { 'echasnovski/mini.nvim', version = '*' },
Branch Code snippet
Main Plug 'echasnovski/mini.nvim'
Stable Plug 'echasnovski/mini.nvim', { 'branch': 'stable' }

Important: don't forget to call module's setup() (if required) to enable its functionality.

Note: if you are on Windows, there might be problems with too long file paths (like error: unable to create file <some file name>: Filename too long). Try doing one of the following:

Modules

If you are browsing without particular objective and don't know which module to look at:

Module Description Overview Details
mini.ai Extend and create a/i textobjects README Help file
mini.align Align text interactively README Help file
mini.animate Animate common Neovim actions README Help file
mini.base16 Base16 colorscheme creation README Help file
mini.basics Common configuration presets README Help file
mini.bracketed Go forward/backward with square brackets README Help file
mini.bufremove Remove buffers README Help file
mini.clue Show next key clues README Help file
mini.colors Tweak and save any color scheme README Help file
mini.comment Comment lines README Help file
mini.completion Completion and signature help README Help file
mini.cursorword Autohighlight word under cursor README Help file
mini.deps Plugin manager README Help file
mini.diff Work with diff hunks README Help file
mini.doc Generate Neovim help files README Help file
mini.extra Extra 'mini.nvim' functionality README Help file
mini.files Navigate and manipulate file system README Help file
mini.fuzzy Fuzzy matching README Help file
mini.git Git integration README Help file
mini.hipatterns Highlight patterns in text README Help file
mini.hues Generate configurable color scheme README Help file
mini.icons Icon provider README Help file
mini.indentscope Visualize and work with indent scope README Help file
mini.jump Jump to next/previous single character README Help file
mini.jump2d Jump within visible lines README Help file
mini.map Window with buffer text overview README Help file
mini.misc Miscellaneous functions README Help file
mini.move Move any selection in any direction README Help file
mini.notify Show notifications README Help file
mini.operators Text edit operators README Help file
mini.pairs Autopairs README Help file
mini.pick Pick anything README Help file
mini.sessions Session management README Help file
mini.splitjoin Split and join arguments README Help file
mini.starter Start screen README Help file
mini.statusline Statusline README Help file
mini.surround Surround actions README Help file
mini.tabline Tabline README Help file
mini.test Test Neovim plugins README Help file
mini.trailspace Trailspace (highlight and remove) README Help file
mini.visits Track and reuse file system visits README Help file

General principles

Plugin colorschemes

This plugin comes with several color schemes (all have both dark and light variants):

Activate them as regular colorscheme (for example, :colorscheme randomhue or :colorscheme minicyan). You can see how they look in demo of 'mini.hues' or demo of 'mini.base16'.

Planned modules

This is the list of modules I currently intend to implement eventually (as my free time and dedication will allow), in alphabetical order: