snacks.nvim
v2.4.0
snacks.nvim
ชุดปลั๊กอิน QoL ขนาดเล็กสำหรับ Neovim
อาหารว่าง | คำอธิบาย | ตั้งค่า |
---|---|---|
ไฟล์ใหญ่ | จัดการกับไฟล์ขนาดใหญ่ | |
บุฟเฟ่ต์ | ลบบัฟเฟอร์โดยไม่รบกวนเค้าโครงหน้าต่าง | |
แดชบอร์ด | แดชบอร์ดประกาศที่สวยงาม | |
แก้ปัญหา | ตรวจสอบและย้อนรอยสำหรับการดีบัก | |
คอมไพล์ | ฟังก์ชั่นที่มีประโยชน์สำหรับ Git | |
gitbrows | เปิด repo ของไฟล์ที่ใช้งานอยู่ในเบราว์เซอร์ (เช่น GitHub) | |
ขี้เกียจ | เปิด LazyGit ในรูปแบบสีแบบลอย กำหนดค่าอัตโนมัติ และผสานรวมกับ Neovim | |
แจ้ง | ฟังก์ชั่นยูทิลิตี้เพื่อทำงานร่วมกับ vim.notify ของ Neovim | |
ผู้แจ้ง | vim.notify ดีขึ้นและสวยขึ้น | |
ไฟล์ด่วน | เมื่อทำ nvim somefile.txt มันจะเรนเดอร์ไฟล์โดยเร็วที่สุดก่อนที่จะโหลดปลั๊กอินของคุณ | |
เปลี่ยนชื่อ | การเปลี่ยนชื่อไฟล์แบบรวม LSP พร้อมรองรับปลั๊กอินเช่น neo-tree.nvim และ mini.files | |
คอลัมน์สถานะ | คอลัมน์สถานะสวย | |
เทอร์มินัล | สร้างและสลับเทอร์มินัลลอย/แยก | |
สลับ | สลับคีย์แมปที่รวมเข้ากับไอคอน / สีคีย์ใด | |
ชนะ | สร้างและจัดการหน้าต่างลอยหรือการแยกได้อย่างง่ายดาย | |
คำ | แสดงการอ้างอิง LSP อัตโนมัติและนำทางระหว่างข้อมูลเหล่านั้นอย่างรวดเร็ว |
ติดตั้งปลั๊กอินกับผู้จัดการแพ็คเกจของคุณ:
สำคัญ
ปลั๊กอินบางตัว จำเป็นต้อง มีการตั้งค่า snacks.nvim
ก่อนกำหนด โปรแกรมติดตั้งจะสร้าง autocmds บางส่วนและไม่โหลดปลั๊กอินใดๆ ตรวจสอบรหัสเพื่อดูว่ามันทำอะไร
คำเตือน
คุณต้องส่งตัวเลือกสำหรับปลั๊กอินอย่างชัดเจนหรือตั้งค่า 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 | ชื่อ | ชื่อเรื่องของหน้าต่าง |
ของว่างฉากหลัง | ไม่มี | ฉากหลัง |
ของว่างปกติNC | ปกติโฟลต | ปกติสำหรับหน้าต่างที่ไม่ใช่ปัจจุบัน |
ของว่างWinBarNC | ของว่างWinBar | ชื่อเรื่องสำหรับหน้าต่างที่ไม่ใช่ปัจจุบัน |
ข้อมูลแจ้งเตือนของว่าง | ไม่มี | หน้าต่างการแจ้งเตือนสำหรับข้อมูล |
SnacksNotifierWarn | ไม่มี | หน้าต่างการแจ้งเตือนสำหรับคำเตือน |
SnacksNotifierDebug | ไม่มี | หน้าต่างการแจ้งเตือนสำหรับ Debug |
ข้อผิดพลาดการแจ้งเตือนของว่าง | ไม่มี | หน้าต่างแจ้งเตือนข้อผิดพลาด |
SnacksNotifierTrace | ไม่มี | หน้าต่างการแจ้งเตือนสำหรับการติดตาม |
SnacksNotifierIconInfo | ไม่มี | ไอคอนสำหรับการแจ้งเตือนข้อมูล |
SnacksNotifierIconWarn | ไม่มี | ไอคอนสำหรับการแจ้งเตือน |
SnacksNotifierIconDebug | ไม่มี | ไอคอนสำหรับการแจ้งเตือนการแก้ไขข้อบกพร่อง |
SnacksNotifierIconข้อผิดพลาด | ไม่มี | ไอคอนสำหรับการแจ้งเตือนข้อผิดพลาด |
SnacksNotifierIconTrace | ไม่มี | ไอคอนสำหรับการแจ้งเตือนการติดตาม |
SnacksNotifierTitleInfo | ไม่มี | ชื่อเรื่องสำหรับการแจ้งเตือนข้อมูล |
SnacksNotifierTitleWarn | ไม่มี | ชื่อเรื่องสำหรับการแจ้งเตือน |
SnacksNotifierTitleDebug | ไม่มี | หัวข้อสำหรับการแจ้งเตือนการแก้ไขข้อบกพร่อง |
SnacksNotifierTitleError | ไม่มี | ชื่อเรื่องสำหรับการแจ้งเตือนข้อผิดพลาด |
SnacksNotifierTitleTrace | ไม่มี | ชื่อเรื่องสำหรับการแจ้งเตือนการติดตาม |
ของว่างNotifierBorderInfo | ไม่มี | ชายแดนสำหรับการแจ้งเตือนข้อมูล |
SnacksNotifierBorderWarn | ไม่มี | ชายแดนสำหรับการแจ้งเตือน |
SnacksNotifierBorderDebug | ไม่มี | ขอบเขตสำหรับการแจ้งเตือนการแก้ไขข้อบกพร่อง |
SnacksNotifierBorderError | ไม่มี | ขอบเขตสำหรับการแจ้งเตือนข้อผิดพลาด |
SnacksNotifierBorderTrace | ไม่มี | ชายแดนสำหรับการแจ้งเตือนการติดตาม |
ของว่างNotifierFooterInfo | ข้อมูลการวินิจฉัย | ส่วนท้ายสำหรับการแจ้งเตือนข้อมูล |
ของว่างNotifierFooterWarn | DiagnosticWarn | ส่วนท้ายสำหรับการแจ้งเตือน |
SnacksNotifierFooterDebug | คำแนะนำการวินิจฉัย | ส่วนท้ายสำหรับการแจ้งเตือนการแก้ไขข้อบกพร่อง |
SnacksNotifierFooterError | การวินิจฉัยข้อผิดพลาด | ส่วนท้ายสำหรับการแจ้งเตือนข้อผิดพลาด |
SnacksNotifierFooterTrace | คำแนะนำการวินิจฉัย | ส่วนท้ายสำหรับการแจ้งเตือนการติดตาม |
ของว่างแดชบอร์ดปกติ | ปกติ | ปกติสำหรับแดชบอร์ด |
ของว่างแดชบอร์ดDesc | พิเศษ | ข้อความคำอธิบายในแดชบอร์ด |
ของว่างDashboardFile | พิเศษ | รายการไฟล์แดชบอร์ด |
ของว่างแดชบอร์ดDir | ไม่ใช่ข้อความ | รายการไดเร็กทอรี |
ของว่างDashboardFooter | ชื่อ | ข้อความส่วนท้ายของแดชบอร์ด |
ของว่างDashboardHeader | ชื่อ | ข้อความส่วนหัวของแดชบอร์ด |
ของว่างแดชบอร์ดไอคอน | พิเศษ | ไอคอนแดชบอร์ด |
ของว่างDashboardKey | ตัวเลข | คีย์ลัดข้อความ |
ของว่างDashboardTerminal | ของว่างแดชบอร์ดปกติ | ข้อความเทอร์มินัล |
ของว่างแดชบอร์ดพิเศษ | พิเศษ | องค์ประกอบพิเศษ |
ชื่อเรื่องแดชบอร์ดของว่าง | ชื่อ | ข้อความชื่อเรื่อง |