snacks.nvim
Eine Sammlung kleiner QoL-Plugins für Neovim.
Snack | Beschreibung | Aufstellen |
---|---|---|
Bigfile | Behandeln Sie große Dateien | |
bufdelete | Löschen Sie Puffer, ohne das Fensterlayout zu stören | |
Armaturenbrett | Schöne deklarative Dashboards | |
debuggen | Hübsche Inspektion und Rückverfolgung zum Debuggen | |
Idiot | Nützliche Funktionen für Git | |
gitbrowse | Öffnen Sie das Repo der aktiven Datei im Browser (z. B. GitHub). | |
faul | Öffnen Sie LazyGit in einem Float, konfigurieren Sie das Farbschema automatisch und integrieren Sie es in Neovim | |
benachrichtigen | Hilfsfunktionen zum Arbeiten mit vim.notify von Neovim | |
Melder | Besseres und hübscheres vim.notify | |
Schnelldatei | Wenn Sie nvim somefile.txt ausführen, wird die Datei so schnell wie möglich gerendert, bevor Ihre Plugins geladen werden. | |
umbenennen | LSP-integrierte Dateiumbenennung mit Unterstützung für Plugins wie neo-tree.nvim und mini.files. | |
Statusspalte | Hübsche Statusspalte | |
Terminal | Erstellen und schalten Sie schwebende/geteilte Terminals um | |
umschalten | Schalten Sie die Tastaturbelegung um, die mit welchen Tastensymbolen/-farben integriert ist | |
gewinnen | Erstellen und verwalten Sie ganz einfach schwebende Fenster oder Splits | |
Worte | Zeigen Sie LSP-Referenzen automatisch an und navigieren Sie schnell zwischen ihnen |
Installieren Sie das Plugin mit Ihrem Paketmanager:
Wichtig
Einige Plugins erfordern eine frühzeitige Einrichtung von snacks.nvim
. Setup erstellt einige Autocmds und lädt keine Plugins. Überprüfen Sie den Code, um zu sehen, was er bewirkt.
Vorsicht
Sie müssen explizit Optionen für ein Plugin übergeben oder enabled = true
festlegen, um es zu aktivieren.
Tipp
Es ist eine gute Idee :checkhealth snacks
auszuführen, um zu sehen, ob alles richtig eingerichtet ist.
{
" 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 },
},
}
Eine ausführliche Einrichtung von snacks.nvim
mit lazy.nvim
finden Sie im folgenden Beispiel.
Informationen zur spezifischen Konfiguration finden Sie in der Readme-Datei jedes Plugins.
--- @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 },
}
Im folgenden Beispiel erfahren Sie, wie Sie snacks.nvim
konfigurieren.
{
" 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 ,
}
Gruppe hervorheben | Standardgruppe | Beschreibung |
---|---|---|
SnacksNormal | NormalFloat | Normal für das Float-Fenster |
SnacksWinBar | Titel | Titel des Fensters |
SnacksHintergrund | keiner | Hintergrund |
SnacksNormalNC | NormalFloat | Normal für nicht aktuelle Fenster |
SnacksWinBarNC | SnacksWinBar | Titel für nicht aktuelle Fenster |
SnacksNotifierInfo | keiner | Benachrichtigungsfenster für Informationen |
SnacksNotifierWarnen | keiner | Benachrichtigungsfenster für Warn |
SnacksNotifierDebug | keiner | Benachrichtigungsfenster für Debug |
SnacksNotifierError | keiner | Benachrichtigungsfenster für Fehler |
SnacksNotifierTrace | keiner | Benachrichtigungsfenster für Trace |
SnacksNotifierIconInfo | keiner | Symbol für Info-Benachrichtigung |
SnacksNotifierIconWarn | keiner | Symbol für Warnbenachrichtigung |
SnacksNotifierIconDebug | keiner | Symbol für Debug-Benachrichtigung |
SnacksNotifierIconError | keiner | Symbol für Fehlerbenachrichtigung |
SnacksNotifierIconTrace | keiner | Symbol für Trace-Benachrichtigung |
SnacksNotifierTitleInfo | keiner | Titel für Info-Benachrichtigung |
SnacksNotifierTitleWarn | keiner | Titel für Warnmeldung |
SnacksNotifierTitleDebug | keiner | Titel für Debug-Benachrichtigung |
SnacksNotifierTitleError | keiner | Titel für Fehlermeldung |
SnacksNotifierTitleTrace | keiner | Titel für Trace-Benachrichtigung |
SnacksNotifierBorderInfo | keiner | Rand für Info-Benachrichtigung |
SnacksNotifierBorderWarn | keiner | Rand für Warnmeldung |
SnacksNotifierBorderDebug | keiner | Rand für Debug-Benachrichtigung |
SnacksNotifierBorderError | keiner | Rahmen für Fehlerbenachrichtigung |
SnacksNotifierBorderTrace | keiner | Border for Trace-Benachrichtigung |
SnacksNotifierFooterInfo | DiagnoseInfo | Fußzeile für Info-Benachrichtigung |
SnacksNotifierFooterWarn | DiagnoseWarnung | Fußzeile für Warnmeldung |
SnacksNotifierFooterDebug | DiagnosticHint | Fußzeile für Debug-Benachrichtigung |
SnacksNotifierFooterError | Diagnosefehler | Fußzeile für Fehlermeldung |
SnacksNotifierFooterTrace | DiagnosticHint | Fußzeile für Trace-Benachrichtigung |
SnacksDashboardNormal | Normal | Normal für das Armaturenbrett |
SnacksDashboardDesc | Besonders | Beschreibungstext im Dashboard |
SnacksDashboardFile | Besonders | Dashboard-Dateielemente |
SnacksDashboardDir | NichtText | Verzeichniselemente |
SnacksDashboardFooter | Titel | Fußzeilentext des Dashboards |
SnacksDashboardHeader | Titel | Text der Dashboard-Kopfzeile |
SnacksDashboardIcon | Besonders | Dashboard-Symbole |
SnacksDashboardKey | Nummer | Tastenbelegungstext |
SnacksDashboardTerminal | SnacksDashboardNormal | Terminaltext |
SnacksDashboardSpecial | Besonders | Besondere Elemente |
SnacksDashboardTitle | Titel | Titeltext |