Not for normies
feat: add BufClean command
3 files changed, +30 -3
+1-1nvim/lazy-lock.json
| @@ -6,7 +6,7 @@ | ||
| 6 | 6 | "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, |
| 7 | 7 | "leetcode.nvim": { "branch": "master", "commit": "fdd3f91800b3983e27bc9fcfb99cfa7293d7f11a" }, |
| 8 | 8 | "mason.nvim": { "branch": "main", "commit": "7dc4facca9702f95353d5a1f87daf23d78e31c2a" }, |
| 9 | - "mini.ai": { "branch": "main", "commit": "dcd346a3eda9121e917950680e5eb59f59f78aae" }, | |
| 9 | + "mini.ai": { "branch": "main", "commit": "11c57180bc9084089206e211ac7aa598bedc9673" }, | |
| 10 | 10 | "none-ls-extras.nvim": { "branch": "main", "commit": "fcbae66f72f8406815f38dfa1f25109edfe9e18e" }, |
| 11 | 11 | "none-ls.nvim": { "branch": "main", "commit": "6617d47fbf275d197e3335022a3d33ff310a4b93" }, |
| 12 | 12 | "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" }, |
+27-0nvim/lua/commands.lua
| @@ -11,6 +11,33 @@ vim.api.nvim_create_autocmd("BufEnter", { | ||
| 11 | 11 | end |
| 12 | 12 | }) |
| 13 | 13 | |
| 14 | +vim.api.nvim_create_user_command("TabRename", function(opts) | |
| 15 | + vim.t.tabname = opts.args | |
| 16 | + vim.cmd.redrawtabline() | |
| 17 | +end, { nargs = 1, complete = "file", desc = "Rename current tab" }) | |
| 18 | + | |
| 19 | +vim.api.nvim_create_user_command("BufClean", function() | |
| 20 | + -- Collect all visible buffers from every tab/window | |
| 21 | + local visible = {} | |
| 22 | + for _, win in ipairs(vim.api.nvim_list_wins()) do | |
| 23 | + local buf = vim.api.nvim_win_get_buf(win) | |
| 24 | + visible[buf] = true | |
| 25 | + end | |
| 26 | + | |
| 27 | + local deleted = 0 | |
| 28 | + for _, buf in ipairs(vim.api.nvim_list_bufs()) do | |
| 29 | + if vim.api.nvim_buf_is_loaded(buf) | |
| 30 | + and not visible[buf] | |
| 31 | + and vim.api.nvim_buf_get_option(buf, "buflisted") | |
| 32 | + then | |
| 33 | + vim.api.nvim_buf_delete(buf, { force = true }) | |
| 34 | + deleted = deleted + 1 | |
| 35 | + end | |
| 36 | + end | |
| 37 | + | |
| 38 | + vim.notify("🧹 Deleted " .. deleted .. " hidden buffers (tabs kept intact)") | |
| 39 | +end, { desc = "Delete hidden buffers but keep tab buffers intact" }) | |
| 40 | + | |
| 14 | 41 | local last_buf = nil |
| 15 | 42 | vim.api.nvim_create_autocmd("BufLeave", { |
| 16 | 43 | callback = function(args) |
+2-2nvim/lua/options.lua
| @@ -7,7 +7,6 @@ end | ||
| 7 | 7 | vim.lsp.enable(lsplist) |
| 8 | 8 | |
| 9 | 9 | vim.cmd([[ |
| 10 | -set showtabline=2 | |
| 11 | 10 | set formatoptions-=cro |
| 12 | 11 | set errorformat^=%m@%f |
| 13 | 12 | set fdo= |
| @@ -25,6 +24,7 @@ set expandtab | ||
| 25 | 24 | set ignorecase |
| 26 | 25 | set smartcase |
| 27 | 26 | set foldlevel=99 |
| 27 | +set showtabline=2 | |
| 28 | +set tabline=%!NumberedTabPages() | |
| 28 | 29 | set statusline=[%{getcwd()}]\ %f:%{nvim_treesitter#statusline(1000)} |
| 29 | -"set tabline=%!NumberedTabPages() | |
| 30 | 30 | ]]) |