bufdel.nvim is a neovim plugin that helps you delete buffers without changing windows layout.
Using nvim-plug
require('plug').add({
'wsdjeg/bufdel.nvim',
})- delete a specific buffer:
require("bufdel").delete(2, { wipe = true })- delete more than one buffers:
require("bufdel").delete({ 2, 3, 5 }, { wipe = true })- delete buffers with filter function:
require("bufdel").delete(function(buf)
return not vim.bo[buf]modified and vim.bo[buf].buflisted
end, { wipe = true })bufdel.nvim also provides two user commands :Bdelete and :Bwipeout, which is just same as :delete and :bwipeout,
but these user commands will not change the windows layout.
bufdel.nvim triggers two user autocmds when delete a buffer, User BufDelPro and User BufDelPost. here is an example to handled these events:
local mygroup = vim.api.nvim_create_augroup("bufdel_custom", { clear = true })
vim.api.nvim_create_autocmd({ "User" }, {
group = mygroup,
pattern = "BufDelPro",
callback = function(ev)
--- the deleted buffer number is saved in ev.data.buf
end,
})
vim.api.nvim_create_autocmd({ "User" }, {
group = mygroup,
pattern = "BufDelPost",
callback = function(ev)
--- the deleted buffer number is saved in ev.data.buf
end,
})The User BufDelPost event will not be triggered if failed to delete buffer.
Like this plugin? Star the repository on GitHub.
Love this plugin? Follow me on GitHub.
This project is licensed under the GPL-3.0 License.