diff options
Diffstat (limited to '.config/nvim/lua/buffers.lua')
| -rw-r--r-- | .config/nvim/lua/buffers.lua | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/.config/nvim/lua/buffers.lua b/.config/nvim/lua/buffers.lua new file mode 100644 index 0000000..ca593a7 --- /dev/null +++ b/.config/nvim/lua/buffers.lua @@ -0,0 +1,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' }) |
