mirror of
https://github.com/folke/snacks.nvim
synced 2025-12-23 08:47:57 +00:00
🍿 A collection of QoL plugins for Neovim
| .github | ||
| doc | ||
| docs | ||
| lua/snacks | ||
| plugin | ||
| queries/lua | ||
| scripts | ||
| tests | ||
| .editorconfig | ||
| .gitignore | ||
| LICENSE | ||
| README.md | ||
| selene.toml | ||
| stylua.toml | ||
| vim.toml | ||
🍿 snacks.nvim
A collection of small QoL plugins for Neovim.
Caution
Do NOT use this for now, it's still in development.
⚡️ Requirements
- Neovim >= 0.9.4
- for proper icons support:
- mini.icons (optional)
- nvim-web-devicons (optional)
- a Nerd Font (optional)
📦 Installation
Install the plugin with your package manager:
lazy.nvim
Important
A couple of plugins require
snacks.nvimto be set-up early. Setup only sets up some autocmds and does not load any plugins. Check the code to see exactly what is being set up.
Tip
If you don't need these plugins, you can disable them, or skip
setupalltogether.
{
"folke/snacks.nvim",
priority = 1000,
lazy = false,
opts = {
-- your configuration comes here
-- or leave it empty to use the default settings
-- refer to the configuration section below
},
keys = {
{
"<leader>?",
function()
require("which-key").show({ global = false })
end,
desc = "Buffer Local Keymaps (which-key)",
},
},
}
⚙️ Configuration
Please refer to the readme of each plugin for their specific configuration.
Default Options
---@class snacks.Config
---@field bigfile? snacks.bigfile.Config | { enabled: boolean }
---@field gitbrowse? snacks.gitbrowse.Config
---@field lazygit? snacks.lazygit.Config
---@field notifier? snacks.notifier.Config | { enabled: boolean }
---@field quickfile? { enabled: boolean }
---@field statuscolumn? snacks.statuscolumn.Config | { enabled: boolean }
---@field terminal? snacks.terminal.Config
---@field toggle? snacks.toggle.Config
---@field views? table<string, snacks.win.Config>
---@field win? snacks.win.Config
---@field words? snacks.words.Config
{
views = {},
bigfile = { enabled = true },
notifier = { enabled = true },
quickfile = { enabled = true },
statuscolumn = { enabled = true },
words = { enabled = true },
}
📦 Snacks
| Module | Description | Readme |
|---|---|---|
| bigfile | Deal with big files | README |
| bufdelete | Delete buffers without disrupting window layout | README |
| debug | Pretty inspect & backtraces for debugging | README |
| git | Useful tools for Git | README |
| gitbrowse | Open the repo of the active file in the browser (e.g., GitHub) | README |
| lazygit | Open LazyGit in a float, auto-configure colorscheme and integration with Neovim | README |
| notify | Small wrapper around Neovim's vim.notify |
README |
| notifier | Better vim.notify |
README |
| quickfile | Render a file as quickly as possible before loading all plugins (progressive rendering) | README |
| rename | LSP-integrated renaming with support for plugins like neo-tree, nvim-tree, oil, mini.files | README |
| statuscolumn | Customizable statuscolumn | README |
| terminal | Create and toggle floating/sp. Uses float. | README |
| toggle | Toggle keymaps integrated with which-key icons / colors | README |
| win | Easily create and manage floating windows or splits | README |
| words | Auto-show LSP references, auto-show and quick navigation between them | README |