Library of 40+ independent Lua modules improving overall Neovim (version 0.9 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.
There are two branches to install from:
main(default, recommended) will have latest development version of plugin. All changes since last stable release should be perceived as being in beta testing phase (meaning they already passed alpha-testing and are moderately settled).stablewill be updated only upon releases with code tested during public beta-testing phase inmainbranch.
Here are code snippets for some common installation methods:
- Manually with
git clone(compatible with mini.deps):
-- 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')
vim.cmd('echo "Installed `mini.nvim`" | redraw')
end- With folke/lazy.nvim:
| Branch | Code snippet |
|---|---|
| Main | { 'echasnovski/mini.nvim', version = false }, |
| Stable | { 'echasnovski/mini.nvim', version = '*' }, |
- With junegunn/vim-plug:
| Branch | Code snippet |
|---|---|
| Main | Plug 'echasnovski/mini.nvim' |
| Stable | Plug 'echasnovski/mini.nvim', { 'branch': 'stable' } |
- Every module is also distributed as a standalone Git repository. Check out module's information for more details.
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:
- Enable corresponding git global config value:
git config --system core.longpaths true. Then try to reinstall. - Install plugin in other place with shorter path.
'mini.nvim' contains many modules which is slightly daunting at first. All of them can be used independently, one at a time. For easier exploration, here they are presented in groups based on module's primary functionality (although some modules can fit in several groups).
These modules improve your text editing experience. Start with 'mini.ai', 'mini.operators', and 'mini.surround'.
| Module | Description | Overview | Details |
|---|---|---|---|
| mini.ai | Extend and create a/i textobjects |
README | Help file |
| mini.align | Align text interactively | README | Help file |
| mini.comment | Comment lines | README | Help file |
| mini.completion | Completion and signature help | README | Help file |
| mini.keymap | Special key mappings | README | Help file |
| mini.move | Move any selection in any direction | README | Help file |
| mini.operators | Text edit operators | README | Help file |
| mini.pairs | Autopairs | README | Help file |
| mini.snippets | Manage and expand snippets | README | Help file |
| mini.splitjoin | Split and join arguments | README | Help file |
| mini.surround | Surround actions | README | Help file |
These modules improve your general workflow. Start with 'mini.bracketed', 'mini.files', and 'mini.pick'.
| Module | Description | Overview | Details |
|---|---|---|---|
| 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.deps | Plugin manager | README | Help file |
| mini.diff | Work with diff hunks | README | Help file |
| mini.extra | Extra 'mini.nvim' functionality | README | Help file |
| mini.files | Navigate and manipulate file system | README | Help file |
| mini.git | Git integration | README | Help file |
| mini.jump | Jump to next/previous single character | README | Help file |
| mini.jump2d | Jump within visible lines | README | Help file |
| mini.misc | Miscellaneous functions | README | Help file |
| mini.pick | Pick anything | README | Help file |
| mini.sessions | Session management | README | Help file |
| mini.visits | Track and reuse file system visits | README | Help file |
These modules improve your Neovim appearance. Start with 'mini.hues', 'mini.icons', and 'mini.statusline'.
| Module | Description | Overview | Details |
|---|---|---|---|
| mini.animate | Animate common Neovim actions | README | Help file |
| mini.base16 | Base16 colorscheme creation | README | Help file |
| mini.colors | Tweak and save any color scheme | README | Help file |
| mini.cursorword | Autohighlight word under cursor | 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.map | Window with buffer text overview | README | Help file |
| mini.notify | Show notifications | README | Help file |
| mini.starter | Start screen | README | Help file |
| mini.statusline | Statusline | README | Help file |
| mini.tabline | Tabline | README | Help file |
| mini.trailspace | Trailspace (highlight and remove) | README | Help file |