Close unused buffers action

This commit is contained in:
Vaclav Uruba 2025-05-27 19:02:06 -06:00
parent ca3cb6b047
commit b48d753bd2
Signed by: uruba
GPG Key ID: 9D8E987C4B2E1E9C
3 changed files with 35 additions and 5 deletions

View File

@ -1,7 +1,8 @@
require("core/keymap") require("functions.buffers")
require("core.keymap")
require("lazy-init") require("lazy-init")
require("core/basic-vars") require("core.basic-vars")
require("core/options") require("core.options")
require("core/theme") require("core.theme")

View File

@ -14,4 +14,6 @@ vim.keymap.set("n", "<leader>sx", "<cmd>close<cr>", { desc = "Close current spli
vim.keymap.set("n", "<leader>bn", "<cmd>bn<cr>", { desc = "Next buffer" }) vim.keymap.set("n", "<leader>bn", "<cmd>bn<cr>", { desc = "Next buffer" })
vim.keymap.set("n", "<leader>bp", "<cmd>bp<cr>", { desc = "Prev buffer" }) vim.keymap.set("n", "<leader>bp", "<cmd>bp<cr>", { desc = "Prev buffer" })
vim.keymap.set("n", "<leader>bd", "<cmd>bd<cr>", { desc = "Close buffer" }) vim.keymap.set("n", "<leader>bd", "<cmd>bd<cr>", { desc = "Close buffer" })
vim.keymap.set("n", "<leader>ba", "<cmd>1,.-bd|.+,$bd<cr>", { desc = "Close other buffers" }) vim.keymap.set("n", "<leader>ba", function()
CloseUnusedbuffers()
end, { desc = "Close unused buffers" })

View File

@ -0,0 +1,27 @@
-- Persist modified buffers
vim.api.nvim_create_autocmd({ "BufRead" }, {
group = vim.api.nvim_create_augroup("startup", {
clear = false,
}),
pattern = { "*" },
callback = function()
vim.api.nvim_create_autocmd({ "InsertEnter", "BufModifiedSet" }, {
buffer = 0,
once = true,
callback = function()
local bufnr = vim.api.nvim_get_current_buf()
vim.fn.setbufvar(bufnr, "bufpersist", 1)
end,
})
end,
})
CloseUnusedbuffers = function()
local curbufnr = vim.api.nvim_get_current_buf()
local buflist = vim.api.nvim_list_bufs()
for _, bufnr in ipairs(buflist) do
if vim.bo[bufnr].buflisted and bufnr ~= curbufnr and (vim.fn.getbufvar(bufnr, "bufpersist") ~= 1) then
vim.cmd("bd " .. tostring(bufnr))
end
end
end