1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
--Nmap("<leader>b", ':buffer ')
-- stolen from https://www.reddit.com/r/neovim/comments/12c4ad8/closing_unused_buffers/
local id = vim.api.nvim_create_augroup("startup", {
clear = false
})
local persistbuffer = function(bufnr)
bufnr = bufnr or vim.api.nvim_get_current_buf()
vim.fn.setbufvar(bufnr, 'bufpersist', 1)
end
vim.api.nvim_create_autocmd({ "BufRead" }, {
group = id,
pattern = { "*" },
callback = function()
vim.api.nvim_create_autocmd({ "InsertEnter", "BufModifiedSet" }, {
buffer = 0,
once = true,
callback = function()
persistbuffer()
end
})
end
})
vim.keymap.set('n', '<Leader>o',
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, { silent = true, desc = 'Close unused buffers' })
|