snacks.nvim
v2.4.0
snacks.nvim
Kumpulan plugin QoL kecil untuk Neovim.
Camilan | Keterangan | Pengaturan |
---|---|---|
file besar | Menangani file besar | |
menghapus | Hapus buffer tanpa mengganggu tata letak jendela | |
dasbor | Dasbor deklaratif yang indah | |
men-debug | Cukup periksa & lacak balik untuk debugging | |
git | Fungsi yang berguna untuk Git | |
penjelajahan git | Buka repo file aktif di browser (misalnya GitHub) | |
malas | Buka LazyGit dalam float, konfigurasi otomatis skema warna dan integrasi dengan Neovim | |
memberitahu | Utilitas berfungsi untuk bekerja dengan vim.notify Neovim | |
pemberi notifikasi | vim.notify yang lebih baik dan lebih cantik | |
file cepat | Saat melakukan nvim somefile.txt , itu akan merender file secepat mungkin, sebelum memuat plugin Anda. | |
ganti nama | Penggantian nama file terintegrasi LSP dengan dukungan untuk plugin seperti neo-tree.nvim dan mini.files. | |
kolom status | Kolom status cantik | |
terminal | Membuat dan mengaktifkan terminal mengambang/terpisah | |
beralih | Alihkan peta tombol yang terintegrasi dengan ikon/warna tombol mana | |
menang | Membuat dan mengelola jendela mengambang atau perpecahan dengan mudah | |
kata-kata | Tampilkan referensi LSP secara otomatis dan navigasikan dengan cepat di antara referensi tersebut |
Instal plugin dengan manajer paket Anda:
Penting
Beberapa plugin memerlukan snacks.nvim
untuk diatur lebih awal. Penyiapan membuat beberapa autocmds dan tidak memuat plugin apa pun. Periksa kode untuk melihat fungsinya.
Peringatan
Anda perlu secara eksplisit memberikan opsi untuk sebuah plugin atau menyetel enabled = true
untuk mengaktifkannya.
Tip
Sebaiknya jalankan :checkhealth snacks
untuk melihat apakah semuanya sudah diatur dengan benar.
{
" 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 },
},
}
Untuk penyiapan snacks.nvim
secara mendalam dengan lazy.nvim
, lihat contoh di bawah.
Silakan merujuk ke readme setiap plugin untuk konfigurasi spesifiknya.
--- @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 },
}
Lihat contoh di bawah untuk cara mengkonfigurasi 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 ,
}
Sorot Grup | Grup Bawaan | Keterangan |
---|---|---|
Makanan RinganNormal | Mengambang Normal | Normal untuk jendela float |
Makanan RinganWinBar | Judul | Judul jendela |
Makanan RinganLatar Belakang | tidak ada | Latar belakang |
Makanan RinganNormalNC | Mengambang Normal | Normal untuk jendela yang tidak aktif |
Makanan RinganWinBarNC | Makanan RinganWinBar | Judul untuk jendela non-saat ini |
Info Makanan RinganNotifier | tidak ada | Jendela pemberitahuan untuk Info |
Makanan RinganNotifierWarn | tidak ada | Jendela pemberitahuan untuk Peringatkan |
SnacksNotifierDebug | tidak ada | Jendela pemberitahuan untuk Debug |
SnacksNotifierError | tidak ada | Jendela pemberitahuan untuk Kesalahan |
CemilanNotifierTrace | tidak ada | Jendela pemberitahuan untuk Trace |
Info Makanan RinganNotifierIcon | tidak ada | Ikon untuk pemberitahuan Info |
Makanan RinganPemberitahuIkonPeringatkan | tidak ada | Ikon untuk pemberitahuan Peringatkan |
SnacksNotifierIconDebug | tidak ada | Ikon untuk pemberitahuan Debug |
SnacksNotifierIconError | tidak ada | Ikon untuk pemberitahuan Kesalahan |
SnacksNotifierIconTrace | tidak ada | Ikon untuk pemberitahuan Jejak |
SnacksNotifierTitleInfo | tidak ada | Judul untuk pemberitahuan Info |
Makanan RinganNotifierTitleWarn | tidak ada | Judul untuk pemberitahuan Peringatkan |
SnacksNotifierTitleDebug | tidak ada | Judul untuk pemberitahuan Debug |
SnacksNotifierTitleError | tidak ada | Judul untuk pemberitahuan Kesalahan |
SnacksNotifierTitleTrace | tidak ada | Judul untuk pemberitahuan Jejak |
SnacksNotifierBorderInfo | tidak ada | Perbatasan untuk pemberitahuan Info |
Makanan RinganNotifierBorderWarn | tidak ada | Perbatasan untuk pemberitahuan Peringatan |
SnacksNotifierBorderDebug | tidak ada | Perbatasan untuk pemberitahuan Debug |
SnacksNotifierBorderError | tidak ada | Pemberitahuan Perbatasan untuk Kesalahan |
CemilanNotifierBorderTrace | tidak ada | Pemberitahuan Perbatasan untuk Jejak |
SnacksNotifierFooterInfo | Info Diagnostik | Footer untuk pemberitahuan Info |
Makanan RinganNotifierFooterWarn | Peringatan Diagnostik | Footer untuk pemberitahuan Peringatkan |
SnacksNotifierFooterDebug | Petunjuk Diagnostik | Footer untuk pemberitahuan Debug |
SnacksNotifierFooterError | Kesalahan Diagnostik | Footer untuk pemberitahuan Kesalahan |
SnacksNotifierFooterTrace | Petunjuk Diagnostik | Footer untuk pemberitahuan Jejak |
Jajanan DasborNormal | Normal | Biasa untuk dashboard |
Makanan RinganDasborDesc | Spesial | Teks deskripsi di dasbor |
File Dasbor Makanan Ringan | Spesial | Item file dasbor |
Makanan RinganDashboardDir | Bukan Teks | Item direktori |
Makanan RinganDashboardFooter | Judul | Teks footer dasbor |
Makanan RinganDashboardHeader | Judul | Teks tajuk dasbor |
Ikon Dasbor Makanan Ringan | Spesial | Ikon dasbor |
Makanan RinganDashboardKey | Nomor | Teks pengikat tombol |
Terminal Dasbor Makanan Ringan | Jajanan DasborNormal | Teks terminal |
Dasbor Jajanan Spesial | Spesial | Elemen khusus |
Judul Dasbor Makanan Ringan | Judul | Teks judul |