added shortcut to remove unused buffers
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
require("base")
|
require("base")
|
||||||
require("specifics")
|
require("specifics")
|
||||||
require("plugins")
|
require("plugins")
|
||||||
|
require("buffer_tools").init()
|
||||||
|
|||||||
@@ -0,0 +1,44 @@
|
|||||||
|
local M = {}
|
||||||
|
|
||||||
|
local function get_active_buffers()
|
||||||
|
local active_buffers = {}
|
||||||
|
for tabnr = 1, vim.fn.tabpagenr("$") do
|
||||||
|
for _, bufnr in ipairs(vim.fn.tabpagebuflist(tabnr)) do
|
||||||
|
active_buffers[bufnr] = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return active_buffers
|
||||||
|
end
|
||||||
|
|
||||||
|
local function get_all_buffers()
|
||||||
|
local all_buffers = {}
|
||||||
|
for bufnr = 1, vim.fn.bufnr("$") do
|
||||||
|
if vim.fn.buflisted(bufnr) == 1 then
|
||||||
|
all_buffers[bufnr] = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return all_buffers
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.remove_unused_buffers()
|
||||||
|
local active_buffers = get_active_buffers()
|
||||||
|
local all_buffers = get_all_buffers()
|
||||||
|
local buffers_to_remove = {}
|
||||||
|
|
||||||
|
for bufnr, _ in pairs(all_buffers) do
|
||||||
|
if active_buffers[bufnr] == nil then
|
||||||
|
buffers_to_remove[bufnr] = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
for bufnr, _ in pairs(buffers_to_remove) do
|
||||||
|
vim.cmd("bd " .. bufnr)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.init()
|
||||||
|
local map = require("helpers").map
|
||||||
|
map("n", "<Leader>b", ":lua require('buffer_tools').remove_unused_buffers()<CR>")
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
||||||
Reference in New Issue
Block a user