snacks.nvim
v2.4.0
snacks.nvim
Коллекция небольших плагинов QoL для Neovim.
Закуска | Описание | Настраивать |
---|---|---|
большой файл | Работа с большими файлами | |
удаление буфера | Удаляйте буферы, не нарушая макет окна. | |
приборная панель | Красивые декларативные дашборды | |
отлаживать | Симпатичная проверка и обратная трассировка для отладки | |
мерзавец | Полезные функции для Git | |
GitBrowse | Откройте репозиторий активного файла в браузере (например, GitHub). | |
лентяй | Открытие LazyGit в плавающем режиме, автоматическая настройка цветовой схемы и интеграция с Neovim. | |
уведомить | Утилиты для работы с vim.notify от Neovim | |
уведомитель | Лучше и красивее 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 ,
}
Выделить группу | Группа по умолчанию | Описание |
---|---|---|
ЗакускиНормальный | ОбычныйFloat | Нормально для плавающего окна |
ЗакускиWinBar | Заголовок | Название окна |
ЗакускиФон | никто | Фон |
ЗакускиОбычныйNC | ОбычныйFloat | Нормально для устаревших окон |
ЗакускиWinBarNC | ЗакускиWinBar | Заголовок для устаревших окон |
ЗакускиУведомлениеИнформация | никто | Окно уведомлений для информации |
ЗакускиУведомлениеПредупреждать | никто | Окно уведомлений для предупреждения |
SnacksNotifierОтладка | никто | Окно уведомлений для отладки |
SnacksNotifierError | никто | Окно уведомления об ошибке |
ЗакускиNotifierTrace | никто | Окно уведомлений для Trace |
ЗакускиУведомлениеЗначокИнформация | никто | Значок информационного уведомления |
ЗакускиУведомлениеЗначокПредупреждать | никто | Значок уведомления о предупреждении |
ЗакускиУведомлениеЗначокОтладка | никто | Значок уведомления об отладке |
SnacksNotifierIconError | никто | Значок уведомления об ошибке |
ЗакускиУведомлениеЗначокСлед | никто | Значок уведомления о отслеживании |
ЗакускиУведомлениеНазваниеИнформация | никто | Заголовок информационного уведомления |
ЗакускиУведомлениеЗаголовокПредупреждать | никто | Название предупреждения |
ЗакускиУведомлениеЗаголовокОтладка | никто | Заголовок уведомления об отладке |
SnacksNotifierTitleError | никто | Название уведомления об ошибке |
ЗакускиУведомлениеНазваниеСлед | никто | Название уведомления о отслеживании |
SnacksNotifierBorderInfo | никто | Граница для информационного уведомления |
ЗакускиУведомлениеГраницаПредупреждать | никто | Граница для предупреждения |
SnacksNotifierBorderDebug | никто | Граница для уведомления об отладке |
SnacksNotifierBorderError | никто | Граница для уведомления об ошибке |
ЗакускиNotifierBorderTrace | никто | Граница для уведомления о отслеживании |
ЗакускиNotifierFooterInfo | Диагностическая информация | Нижний колонтитул для информационного уведомления |
ЗакускиУведомлениеFooterWarn | Диагностическое предупреждение | Нижний колонтитул для уведомления о предупреждении |
SnacksNotifierFooterDebug | Диагностический совет | Нижний колонтитул для уведомления об отладке |
SnacksNotifierFooterError | Диагностическая ошибка | Нижний колонтитул для уведомления об ошибке |
ЗакускиNotifierFooterTrace | Диагностический совет | Нижний колонтитул для уведомления о отслеживании |
ЗакускиПриборная панельНормальный | Нормальный | Нормально для приборной панели |
ЗакускиПанель управленияDesc | Особенный | Текст описания в панели управления |
ЗакускиПриборная ПанельФайл | Особенный | Элементы файла информационной панели |
ЗакускиПанель управленияDir | Нетекстовый | Элементы каталога |
ЗакускиПанель управленияНижний колонтитул | Заголовок | Текст нижнего колонтитула панели мониторинга |
ЗакускиПанель управленияЗаголовок | Заголовок | Текст заголовка панели мониторинга |
ЗакускиПриборная ПанельЗначок | Особенный | Значки приборной панели |
ЗакускиПриборная ПанельКлюч | Число | Текст сочетания клавиш |
ЗакускиПанель управленияТерминал | ЗакускиПриборная панельНормальный | Текст терминала |
ЗакускиПриборная панельСпециальный | Особенный | Специальные элементы |
ЗакускиПанель управленияНазвание | Заголовок | Текст заголовка |