Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

🍿 A collection of small QoL plugins for Neovim

License

NotificationsYou must be signed in to change notification settings

nipunlakshank/snacks.nvim

 
 

Repository files navigation

A collection of small QoL plugins for Neovim.

✨ Features

SnackDescriptionSetup
animateEfficient animations including over 45 easing functions(library)
bigfileDeal with big files‼️
bufdeleteDelete buffers without disrupting window layout
dashboardBeautiful declarative dashboards‼️
debugPretty inspect & backtraces for debugging
dimFocus on the active scope by dimming the rest
gitGit utilities
gitbrowseOpen the current file, branch, commit, or repo in a browser (e.g. GitHub, GitLab, Bitbucket)
indentIndent guides and scopes
inputBettervim.ui.input‼️
lazygitOpen LazyGit in a float, auto-configure colorscheme and integration with Neovim
notifierPrettyvim.notify‼️
notifyUtility functions to work with Neovim'svim.notify
profilerNeovim lua profiler
quickfileWhen doingnvim somefile.txt, it will render the file as quickly as possible, before loading your plugins.‼️
renameLSP-integrated file renaming with support for plugins likeneo-tree.nvim andmini.files.
scopeScope detection, text objects and jumping based on treesitter or indent‼️
scratchScratch buffers with a persistent file
scrollSmooth scrolling‼️
statuscolumnPretty status column‼️
terminalCreate and toggle floating/split terminals
toggleToggle keymaps integrated with which-key icons / colors
utilUtility functions for Snacks(library)
winCreate and manage floating windows or splits
wordsAuto-show LSP references and quickly navigate between them‼️
zenZen mode • distraction-free coding

⚡️ Requirements

📦 Installation

Install the plugin with your package manager:

Important

A couple of pluginsrequiresnacks.nvim to be set-up early.Setup creates some autocmds and does not load any plugins.Check thecode to see what it does.

Caution

You need to explicitly pass options for a plugin or setenabled = true to enable it.

Tip

It's a good idea to run:checkhealth snacks to see if everything is set up correctly.

{"folke/snacks.nvim",priority=1000,lazy=false,---@typesnacks.Configopts= {-- your configuration comes here-- or leave it empty to use the default settings-- refer to the configuration section belowbigfile= {enabled=true },dashboard= {enabled=true },indent= {enabled=true },input= {enabled=true },notifier= {enabled=true },quickfile= {enabled=true },scroll= {enabled=true },statuscolumn= {enabled=true },words= {enabled=true },  },}

For an in-depth setup ofsnacks.nvim withlazy.nvim, check theexample below.

⚙️ Configuration

Please refer to the readme of each plugin for their specific configuration.

Default Options
---@classsnacks.Config---@fieldanimate?snacks.animate.Config---@fieldbigfile?snacks.bigfile.Config---@fielddashboard?snacks.dashboard.Config---@fielddim?snacks.dim.Config---@fieldgitbrowse?snacks.gitbrowse.Config---@fieldindent?snacks.indent.Config---@fieldinput?snacks.input.Config---@fieldlazygit?snacks.lazygit.Config---@fieldnotifier?snacks.notifier.Config---@fieldprofiler?snacks.profiler.Config---@fieldquickfile?snacks.quickfile.Config---@fieldscope?snacks.scope.Config---@fieldscratch?snacks.scratch.Config---@fieldscroll?snacks.scroll.Config---@fieldstatuscolumn?snacks.statuscolumn.Config---@fieldterminal?snacks.terminal.Config---@fieldtoggle?snacks.toggle.Config---@fieldwin?snacks.win.Config---@fieldwords?snacks.words.Config---@fieldzen?snacks.zen.Config---@fieldstyles?table<string,snacks.win.Config>{}

Some plugins have examples in their documentation. You can include them in yourconfig like this:

{dashboard= {example="github"}}

If you want to customize options for a plugin after they have been resolved, youcan use theconfig function:

{gitbrowse= {config=function(opts,defaults)table.insert(opts.remote_patterns, {"my","custom pattern"})end  },}

🚀 Usage

See the example below for how to configuresnacks.nvim.

{"folke/snacks.nvim",priority=1000,lazy=false,---@typesnacks.Configopts= {bigfile= {enabled=true },dashboard= {enabled=true },indent= {enabled=true },input= {enabled=true },notifier= {enabled=true,timeout=3000,    },quickfile= {enabled=true },scroll= {enabled=true },statuscolumn= {enabled=true },words= {enabled=true },styles= {notification= {-- wo = { wrap = true } -- Wrap notifications      }    }  },keys= {    {"<leader>z",function()Snacks.zen()end,desc="Toggle Zen Mode"},    {"<leader>Z",function()Snacks.zen.zoom()end,desc="Toggle Zoom"},    {"<leader>.",function()Snacks.scratch()end,desc="Toggle Scratch Buffer"},    {"<leader>S",function()Snacks.scratch.select()end,desc="Select Scratch Buffer"},    {"<leader>n",function()Snacks.notifier.show_history()end,desc="Notification History"},    {"<leader>bd",function()Snacks.bufdelete()end,desc="Delete Buffer"},    {"<leader>cR",function()Snacks.rename.rename_file()end,desc="Rename File"},    {"<leader>gB",function()Snacks.gitbrowse()end,desc="Git Browse",mode= {"n","v"} },    {"<leader>gb",function()Snacks.git.blame_line()end,desc="Git Blame Line"},    {"<leader>gf",function()Snacks.lazygit.log_file()end,desc="Lazygit Current File History"},    {"<leader>gg",function()Snacks.lazygit()end,desc="Lazygit"},    {"<leader>gl",function()Snacks.lazygit.log()end,desc="Lazygit Log (cwd)"},    {"<leader>un",function()Snacks.notifier.hide()end,desc="Dismiss All Notifications"},    {"<c-/>",function()Snacks.terminal()end,desc="Toggle Terminal"},    {"<c-_>",function()Snacks.terminal()end,desc="which_key_ignore"},    {"]]",function()Snacks.words.jump(vim.v.count1)end,desc="Next Reference",mode= {"n","t"} },    {"[[",function()Snacks.words.jump(-vim.v.count1)end,desc="Prev Reference",mode= {"n","t"} },    {"<leader>N",desc="Neovim News",function()Snacks.win({file=vim.api.nvim_get_runtime_file("doc/news.txt",false)[1],width=0.6,height=0.6,wo= {spell=false,wrap=false,signcolumn="yes",statuscolumn="",conceallevel=3,          },        })end,    }  },init=function()vim.api.nvim_create_autocmd("User", {pattern="VeryLazy",callback=function()-- Setup some globals for debugging (lazy-loaded)_G.dd=function(...)Snacks.debug.inspect(...)end_G.bt=function()Snacks.debug.backtrace()endvim.print=_G.dd-- Override print to use snacks for `:=` command-- Create some toggle mappingsSnacks.toggle.option("spell", {name="Spelling"}):map("<leader>us")Snacks.toggle.option("wrap", {name="Wrap"}):map("<leader>uw")Snacks.toggle.option("relativenumber", {name="Relative Number"}):map("<leader>uL")Snacks.toggle.diagnostics():map("<leader>ud")Snacks.toggle.line_number():map("<leader>ul")Snacks.toggle.option("conceallevel", {off=0,on=vim.o.conceallevel>0andvim.o.conceallevelor2 }):map("<leader>uc")Snacks.toggle.treesitter():map("<leader>uT")Snacks.toggle.option("background", {off="light",on="dark",name="Dark Background"}):map("<leader>ub")Snacks.toggle.inlay_hints():map("<leader>uh")Snacks.toggle.indent():map("<leader>ug")Snacks.toggle.dim():map("<leader>uD")end,    })end,}

🌈 Highlight Groups

Click to see all highlight groups
Highlight GroupDefault GroupDescription
SnacksNormalNormalFloatNormal for the float window
SnacksWinBarTitleTitle of the window
SnacksBackdropnoneBackdrop
SnacksNormalNCNormalFloatNormal for non-current windows
SnacksWinBarNCSnacksWinBarTitle for non-current windows
SnacksScratchKeyDiagnosticVirtualTextKeymap help in the footer
SnacksScratchDescDiagnosticInfoKeymap help desc in the footer
SnacksNotifierInfononeNotification window for Info
SnacksNotifierWarnnoneNotification window for Warn
SnacksNotifierDebugnoneNotification window for Debug
SnacksNotifierErrornoneNotification window for Error
SnacksNotifierTracenoneNotification window for Trace
SnacksNotifierIconInfononeIcon for Info notification
SnacksNotifierIconWarnnoneIcon for Warn notification
SnacksNotifierIconDebugnoneIcon for Debug notification
SnacksNotifierIconErrornoneIcon for Error notification
SnacksNotifierIconTracenoneIcon for Trace notification
SnacksNotifierTitleInfononeTitle for Info notification
SnacksNotifierTitleWarnnoneTitle for Warn notification
SnacksNotifierTitleDebugnoneTitle for Debug notification
SnacksNotifierTitleErrornoneTitle for Error notification
SnacksNotifierTitleTracenoneTitle for Trace notification
SnacksNotifierBorderInfononeBorder for Info notification
SnacksNotifierBorderWarnnoneBorder for Warn notification
SnacksNotifierBorderDebugnoneBorder for Debug notification
SnacksNotifierBorderErrornoneBorder for Error notification
SnacksNotifierBorderTracenoneBorder for Trace notification
SnacksNotifierFooterInfoDiagnosticInfoFooter for Info notification
SnacksNotifierFooterWarnDiagnosticWarnFooter for Warn notification
SnacksNotifierFooterDebugDiagnosticHintFooter for Debug notification
SnacksNotifierFooterErrorDiagnosticErrorFooter for Error notification
SnacksNotifierFooterTraceDiagnosticHintFooter for Trace notification
SnacksDashboardNormalNormalNormal for the dashboard
SnacksDashboardDescSpecialDescription text in dashboard
SnacksDashboardFileSpecialDashboard file items
SnacksDashboardDirNonTextDirectory items
SnacksDashboardFooterTitleDashboard footer text
SnacksDashboardHeaderTitleDashboard header text
SnacksDashboardIconSpecialDashboard icons
SnacksDashboardKeyNumberKeybind text
SnacksDashboardTerminalSnacksDashboardNormalTerminal text
SnacksDashboardSpecialSpecialSpecial elements
SnacksDashboardTitleTitleTitle text

About

🍿 A collection of small QoL plugins for Neovim

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Lua99.8%
  • Other0.2%

[8]ページ先頭

©2009-2025 Movatter.jp