aboutsummaryrefslogtreecommitdiff
path: root/.config/nvim/lua/buffers.lua
diff options
context:
space:
mode:
authorAlec Goncharow <alec@goncharow.dev>2024-02-29 22:57:46 -0500
committerAlec Goncharow <alec@goncharow.dev>2024-02-29 22:57:46 -0500
commit82092fe19a0ff0d0e4bed2ccfd4351cbb2d10d9e (patch)
treeb096fcf91d3739649dabad3a7176709d914ff877 /.config/nvim/lua/buffers.lua
parent68677e4b0faec5b746a27bec036477ebf718f3c0 (diff)
embrace autocomplete defaults, add nocheckin pre-commit hook
Diffstat (limited to '.config/nvim/lua/buffers.lua')
-rw-r--r--.config/nvim/lua/buffers.lua36
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' })