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 | 診斷提示 | 追蹤通知的頁腳 |
零食儀表板正常 | 普通的 | 儀表板正常 |
零食儀表板描述 | 特別的 | 儀表板中的描述文字 |
零食儀表板文件 | 特別的 | 儀表板檔案項目 |
零食儀表板目錄 | 非文字 | 目錄項 |
零食儀表板頁腳 | 標題 | 儀表板頁尾文本 |
零食儀表板標題 | 標題 | 儀表板標題文本 |
零食儀表板圖標 | 特別的 | 儀表板圖示 |
零食儀表板鍵 | 數位 | 按鍵綁定文字 |
零食儀表板終端 | 零食儀表板正常 | 終端文字 |
零食儀表板特價 | 特別的 | 特殊元素 |
零食儀表板標題 | 標題 | 標題文字 |