snacks.nvim
v2.4.0
snacks.nvim
Neovim 的小型 QoL 插件集合。
小吃 | 描述 | 设置 |
---|---|---|
大文件 | 处理大文件 | |
删除缓冲区 | 删除缓冲区而不破坏窗口布局 | |
仪表板 | 漂亮的声明式仪表板 | |
调试 | 用于调试的漂亮检查和回溯 | |
git | Git 的有用函数 | |
gitbrowse | 在浏览器中打开活动文件的存储库(例如,GitHub) | |
懒惰的吉特 | 以浮动方式打开 LazyGit,自动配置颜色方案并与 Neovim 集成 | |
通知 | 与 Neovim 的vim.notify 一起使用的实用函数 | |
通知者 | 更好更漂亮的vim.notify | |
快速文件 | 当执行nvim somefile.txt 时,它会在加载插件之前尽快渲染文件。 | |
重命名 | LSP 集成文件重命名,支持 neo-tree.nvim 和 mini.files 等插件。 | |
状态栏 | 漂亮的状态栏 | |
终端 | 创建和切换浮动/分割终端 | |
切换 | 切换与哪个键图标/颜色集成的键盘映射 | |
赢 | 轻松创建和管理浮动窗口或拆分 | |
字 | 自动显示 LSP 参考并在它们之间快速导航 |
使用包管理器安装插件:
重要的
有几个插件需要尽早设置snacks.nvim
。安装程序创建一些自动命令并且不加载任何插件。检查代码看看它做了什么。
警告
您需要明确传递插件的选项或设置enabled = true
来启用它。
提示
最好运行:checkhealth snacks
来查看一切设置是否正确。
{
" 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
bigfile = { enabled = true },
notifier = { enabled = true },
quickfile = { enabled = true },
statuscolumn = { enabled = true },
words = { enabled = true },
},
}
要深入设置snacks.nvim
和lazy.nvim
,请查看下面的示例。
具体配置请参考各个插件的readme。
--- @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 styles ? table<string , snacks.win.Config>
--- @field dashboard ? snacks.dashboard.Config | { enabled : boolean }
--- @field terminal ? snacks.terminal.Config
--- @field toggle ? snacks.toggle.Config
--- @field win ? snacks.win.Config
--- @field words ? snacks.words.Config
{
styles = {},
bigfile = { enabled = false },
dashboard = { enabled = false },
notifier = { enabled = false },
quickfile = { enabled = false },
statuscolumn = { enabled = false },
words = { enabled = false },
}
请参阅下面的示例了解如何配置snacks.nvim
。
{
" folke/snacks.nvim " ,
priority = 1000 ,
lazy = false ,
--- @type snacks.Config
opts = {
bigfile = { enabled = true },
dashboard = { enabled = true },
notifier = {
enabled = true ,
timeout = 3000 ,
},
quickfile = { enabled = true },
statuscolumn = { enabled = true },
words = { enabled = true },
styles = {
notification = {
wo = { wrap = true } -- Wrap notifications
}
}
},
keys = {
{ " <leader>un " , function () Snacks . notifier . hide () end , desc = " Dismiss All Notifications " },
{ " <leader>bd " , function () Snacks . bufdelete () end , desc = " Delete Buffer " },
{ " <leader>gg " , function () Snacks . lazygit () end , desc = " Lazygit " },
{ " <leader>gb " , function () Snacks . git . blame_line () end , desc = " Git Blame Line " },
{ " <leader>gB " , function () Snacks . gitbrowse () end , desc = " Git Browse " },
{ " <leader>gf " , function () Snacks . lazygit . log_file () end , desc = " Lazygit Current File History " },
{ " <leader>gl " , function () Snacks . lazygit . log () end , desc = " Lazygit Log (cwd) " },
{ " <leader>cR " , function () Snacks . rename . rename_file () end , desc = " Rename File " },
{ " <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 ()
end
vim . print = _G . dd -- Override print to use snacks for `:=` command
-- Create some toggle mappings
Snacks . 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 > 0 and vim . o . conceallevel or 2 }): 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 " )
end ,
})
end ,
}
亮点集团 | 默认组 | 描述 |
---|---|---|
零食普通 | 普通浮动 | 浮动窗口正常 |
零食WinBar | 标题 | 窗口标题 |
零食背景 | 没有任何 | 背景 |
零食NormalNC | 普通浮动 | 非当前窗口正常 |
零食WinBarNC | 零食WinBar | 非当前窗口的标题 |
零食通知信息 | 没有任何 | 信息通知窗口 |
SnacksNotifier警告 | 没有任何 | 警告通知窗口 |
SnacksNotifier调试 | 没有任何 | 调试通知窗口 |
SnacksNotifier错误 | 没有任何 | 错误通知窗口 |
SnacksNotifierTrace | 没有任何 | Trace 的通知窗口 |
SnacksNotifierIconInfo | 没有任何 | 信息通知图标 |
零食通知程序图标警告 | 没有任何 | 警告通知图标 |
SnacksNotifierIconDebug | 没有任何 | 调试通知图标 |
SnacksNotifierIconError 零食通知程序图标错误 | 没有任何 | 错误通知图标 |
零食通知程序图标跟踪 | 没有任何 | 跟踪通知图标 |
SnacksNotifier标题信息 | 没有任何 | 信息通知标题 |
SnacksNotifierTitleWarn | 没有任何 | 警告通知的标题 |
SnacksNotifierTitleDebug | 没有任何 | 调试通知的标题 |
SnacksNotifier标题错误 | 没有任何 | 错误通知的标题 |
SnacksNotifierTitleTrace | 没有任何 | 跟踪通知的标题 |
SnacksNotifierBorderInfo | 没有任何 | 信息通知边框 |
SnacksNotifierBorderWarn | 没有任何 | 警告通知边框 |
SnacksNotifierBorderDebug | 没有任何 | 调试通知边框 |
SnacksNotifierBorderError | 没有任何 | 错误通知边框 |
SnacksNotifierBorderTrace | 没有任何 | 跟踪通知边框 |
SnacksNotifier页脚信息 | 诊断信息 | 信息通知页脚 |
SnacksNotifierFooterWarn | 诊断警告 | 警告通知的页脚 |
SnacksNotifierFooterDebug | 诊断提示 | 调试通知的页脚 |
SnacksNotifierFooterError | 诊断错误 | 错误通知页脚 |
SnacksNotifierFooterTrace | 诊断提示 | 跟踪通知的页脚 |
零食仪表板正常 | 普通的 | 仪表板正常 |
零食仪表板描述 | 特别的 | 仪表板中的描述文本 |
零食仪表板文件 | 特别的 | 仪表板文件项目 |
零食仪表板目录 | 非文本 | 目录项 |
零食仪表板页脚 | 标题 | 仪表板页脚文本 |
零食仪表板标题 | 标题 | 仪表板标题文本 |
零食仪表板图标 | 特别的 | 仪表板图标 |
零食仪表板键 | 数字 | 按键绑定文本 |
零食仪表板终端 | 零食仪表板正常 | 终端文本 |
零食仪表板特价 | 特别的 | 特殊元素 |
零食仪表板标题 | 标题 | 标题文字 |