snacks.nvim
v2.4.0
snacks.nvim
مجموعة من ملحقات QoL الصغيرة لـ Neovim.
وجبة خفيفة | وصف | يثبت |
---|---|---|
com.bigfile | التعامل مع الملفات الكبيرة | |
bufdelete | حذف المخازن المؤقتة دون تعطيل تخطيط النافذة | |
لوحة القيادة | لوحات تعريفية جميلة | |
تصحيح | فحص جميل وتتبعات خلفية لتصحيح الأخطاء | |
بوابة | وظائف مفيدة لجيت | |
com.gitbrowse | افتح الريبو للملف النشط في المتصفح (على سبيل المثال، GitHub) | |
معرف com لهذا التطبيق هو com.lazygit | افتح LazyGit في نظام ألوان عائم وتكوين تلقائي وتكامل مع Neovim | |
يخطر | وظائف الأداة المساعدة للعمل مع vim.notify الخاص بـ Neovim | |
المخطر | أفضل وأجمل vim.notify | |
ملف سريع | عند تنفيذ الأمر nvim somefile.txt ، فإنه سيعرض الملف في أسرع وقت ممكن، قبل تحميل المكونات الإضافية الخاصة بك. | |
إعادة تسمية | إعادة تسمية الملفات المدمجة مع LSP مع دعم المكونات الإضافية مثل neo-tree.nvim وmini.files. | |
Statuscolumn | عمود الحالة جميلة | |
صالة | إنشاء وتبديل المحطات العائمة/المقسمة | |
تبديل | تبديل خرائط المفاتيح المدمجة مع أيقونات/ألوان المفاتيح | |
يفوز | قم بإنشاء وإدارة النوافذ أو الانقسامات العائمة بسهولة | |
كلمات | إظهار مراجع LSP تلقائيًا والتنقل بينها بسرعة |
قم بتثبيت البرنامج المساعد مع مدير الحزم الخاص بك:
مهم
يتطلب اثنان من المكونات الإضافية إعداد snacks.nvim
مبكرًا. يقوم برنامج الإعداد بإنشاء بعض أوامر cmds التلقائية ولا يقوم بتحميل أية مكونات إضافية. تحقق من الكود لترى ماذا يفعل.
حذر
تحتاج إلى تمرير خيارات البرنامج الإضافي بشكل صريح أو تعيين 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
، تحقق من المثال أدناه.
يرجى الرجوع إلى الملف التمهيدي لكل مكون إضافي للتعرف على التكوين الخاص به.
--- @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 ,
}
تسليط الضوء على المجموعة | المجموعة الافتراضية | وصف |
---|---|---|
وجبات خفيفة عادية | NormalFloat | عادي بالنسبة للنافذة العائمة |
SnacksWinBar | عنوان | عنوان النافذة |
SnacksBackdrop | لا أحد | الخلفية |
وجبات خفيفة عاديةNC | NormalFloat | عادي للنوافذ غير الحالية |
SnacksWinBarNC | SnacksWinBar | عنوان للنوافذ غير الحالية |
SnacksNotifierInfo | لا أحد | نافذة الإخطار للمعلومات |
SnacksNotifierWarn | لا أحد | نافذة الإخطار للتحذير |
SnacksNotifierDebug | لا أحد | نافذة الإخطار للتصحيح |
SnacksNotifierError | لا أحد | نافذة الإخطار عن الخطأ |
SnacksNotifierTrace | لا أحد | نافذة الإخطار للتتبع |
SnacksNotifierIconInfo | لا أحد | رمز لإخطار المعلومات |
SnacksNotifierIconWarn | لا أحد | رمز لإشعار التحذير |
SnacksNotifierIconDebug | لا أحد | رمز لإخطار التصحيح |
SnacksNotifierIconError | لا أحد | رمز للإخطار بالخطأ |
SnacksNotifierIconTrace | لا أحد | رمز لإخطار التتبع |
SnacksNotifierTitleInfo | لا أحد | عنوان لإخطار المعلومات |
SnacksNotifierTitleWarn | لا أحد | عنوان لإشعار التحذير |
SnacksNotifierTitleDebug | لا أحد | عنوان لإشعار التصحيح |
SnacksNotifierTitleError | لا أحد | عنوان للإخطار بالخطأ |
SnacksNotifierTitleTrace | لا أحد | عنوان لإشعار التتبع |
SnacksNotifierBorderInfo | لا أحد | الحدود لإخطار المعلومات |
SnacksNotifierBorderWarn | لا أحد | حدود إشعار التحذير |
SnacksNotifierBorderDebug | لا أحد | حدود إعلام التصحيح |
SnacksNotifierBorderError | لا أحد | حدود إشعار الخطأ |
SnacksNotifierBorderTrace | لا أحد | حدود إعلام التتبع |
SnacksNotifierFooterInfo | معلومات التشخيص | تذييل لإشعار المعلومات |
SnacksNotifierFooterWarn | تحذير تشخيصي | تذييل لإشعار التحذير |
SnacksNotifierFooterDebug | تلميح التشخيص | تذييل لإشعار التصحيح |
SnacksNotifierFooterError | خطأ تشخيصي | تذييل للإخطار بالخطأ |
SnacksNotifierFooterTrace | تلميح التشخيص | تذييل لإشعار التتبع |
SnacksDashboardNormal | طبيعي | عادي للوحة القيادة |
SnacksDashboardDesc | خاص | نص الوصف في لوحة القيادة |
SnacksDashboardFile | خاص | عناصر ملف لوحة المعلومات |
SnacksDashboardDir | غير نص | عناصر الدليل |
SnacksDashboardFooter | عنوان | نص تذييل لوحة المعلومات |
SnacksDashboardHeader | عنوان | نص رأس لوحة المعلومات |
SnacksDashboardIcon | خاص | أيقونات لوحة القيادة |
SnacksDashboardKey | رقم | نص ربط المفاتيح |
SnacksDashboardTerminal | SnacksDashboardNormal | النص الطرفي |
SnacksDashboardSpecial | خاص | عناصر خاصة |
SnacksDashboardTitle | عنوان | نص العنوان |