snacks.nvim
v2.4.0
snacks.nvim
Uma coleção de pequenos plug-ins de QV para Neovim.
Lanche | Descrição | Configurar |
---|---|---|
arquivo grande | Lidar com arquivos grandes | |
budelete | Exclua buffers sem interromper o layout da janela | |
painel | Lindos painéis declarativos | |
depurar | Basta inspecionar e rastrear para depuração | |
idiota | Funções úteis para Git | |
gitbrowse | Abra o repositório do arquivo ativo no navegador (por exemplo, GitHub) | |
preguiçoso | Abra o LazyGit em um float, configure automaticamente o esquema de cores e integração com o Neovim | |
notificar | Funções utilitárias para trabalhar com vim.notify do Neovim | |
notificador | vim.notify melhor e mais bonito | |
arquivo rápido | Ao fazer nvim somefile.txt , ele renderizará o arquivo o mais rápido possível, antes de carregar seus plugins. | |
renomear | Renomeação de arquivos integrada ao LSP com suporte para plug-ins como neo-tree.nvim e mini.files. | |
coluna de status | Coluna de status bonita | |
terminal | Criar e alternar terminais flutuantes/divididos | |
alternar | Alternar mapas de teclado integrados com ícones/cores de quais teclas | |
ganhar | Crie e gerencie facilmente janelas flutuantes ou divisões | |
palavras | Mostre automaticamente referências LSP e navegue rapidamente entre elas |
Instale o plugin com seu gerenciador de pacotes:
Importante
Alguns plug-ins exigem que snacks.nvim
seja configurado antecipadamente. A instalação cria alguns autocmds e não carrega nenhum plug-in. Verifique o código para ver o que ele faz.
Cuidado
Você precisa passar explicitamente as opções para um plugin ou definir enabled = true
para habilitá-lo.
Dica
É uma boa ideia executar :checkhealth snacks
para ver se tudo está configurado corretamente.
{
" 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 },
},
}
Para uma configuração detalhada de snacks.nvim
com lazy.nvim
, verifique o exemplo abaixo.
Consulte o leia-me de cada plugin para sua configuração específica.
--- @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 },
}
Veja o exemplo abaixo para saber como configurar 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 ,
}
Grupo de destaque | Grupo padrão | Descrição |
---|---|---|
LanchesNormal | Flutuação Normal | Normal para a janela flutuante |
LanchesWinBar | Título | Título da janela |
Pano de fundo de lanches | nenhum | Pano de fundo |
LanchesNormalNC | Flutuação normal | Normal para janelas não atuais |
LanchesWinBarNC | LanchesWinBar | Título para janelas não atuais |
LanchesNotifierInfo | nenhum | Janela de notificação para informações |
LanchesNotifierWarn | nenhum | Janela de notificação para avisar |
LanchesNotifierDebug | nenhum | Janela de notificação para depuração |
Erro de lanchesNotifier | nenhum | Janela de notificação de erro |
LanchesNotifierTrace | nenhum | Janela de notificação para Trace |
LanchesNotifierIconInfo | nenhum | Ícone para notificação de informações |
LanchesNotifierIconWarn | nenhum | Ícone para notificação de aviso |
LanchesNotifierIconDebug | nenhum | Ícone para notificação de depuração |
LanchesNotifierIconError | nenhum | Ícone para notificação de erro |
LanchesNotifierIconTrace | nenhum | Ícone para notificação de rastreamento |
LanchesNotifierTitleInfo | nenhum | Título da notificação de informações |
LanchesNotifierTitleWarn | nenhum | Título para notificação de aviso |
SnacksNotifierTitleDebug | nenhum | Título para notificação de depuração |
SnacksNotifierTitleError | nenhum | Título para notificação de erro |
LanchesNotifierTitleTrace | nenhum | Título para notificação de rastreamento |
LanchesNotifierBorderInfo | nenhum | Borda para notificação de informações |
LanchesNotifierBorderWarn | nenhum | Borda para notificação de aviso |
SnacksNotifierBorderDebug | nenhum | Borda para notificação de depuração |
SnacksNotifierBorderError | nenhum | Borda para notificação de erro |
LanchesNotifierBorderTrace | nenhum | Borda para notificação de rastreamento |
LanchesNotifierFooterInfo | Informações de diagnóstico | Rodapé para notificação de informações |
LanchesNotifierFooterWarn | DiagnósticoAviso | Rodapé para notificação de aviso |
SnacksNotifierFooterDebug | Dica de diagnóstico | Rodapé para notificação de depuração |
SnacksNotifierFooterError | Erro de diagnóstico | Rodapé para notificação de erro |
LanchesNotifierFooterTrace | Dica de diagnóstico | Rodapé para notificação de rastreamento |
LanchesPainelNormal | Normal | Normal para o painel |
LanchesDashboardDesc | Especial | Texto de descrição no painel |
LanchesDashboardFile | Especial | Itens de arquivo do painel |
LanchesDashboardDir | Não-Texto | Itens de diretório |
LanchesDashboardRodapé | Título | Texto do rodapé do painel |
SnacksDashboardHeader | Título | Texto do cabeçalho do painel |
LanchesDashboardIcon | Especial | Ícones do painel |
LanchesDashboardKey | Número | Texto de atalho |
Terminal de painel de lanches | LanchesPainelNormal | Texto terminal |
LanchesDashboardEspecial | Especial | Elementos especiais |
LanchesDashboardTitle | Título | Texto do título |