Close unused buffers action
This commit is contained in:
parent
ca3cb6b047
commit
b48d753bd2
@ -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")
|
||||||
|
|||||||
@ -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" })
|
||||||
|
|||||||
27
nvim/.config/nvim/lua/functions/buffers.lua
Normal file
27
nvim/.config/nvim/lua/functions/buffers.lua
Normal 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
|
||||||
Loading…
x
Reference in New Issue
Block a user