feat(keymaps): enhance buffer navigation and deletion commands

- Updated `<S-h>`, `<S-l>`, `[b`, and `]b` mappings to support `v:count1` for
  navigating buffers with a count, improving flexibility.
- Modified `<leader>bo` to delete buffers not in the current tab layout,
  providing better control over buffer cleanup.
- Added `<leader>bO` as a new mapping to delete other buffers, complementing
  the existing buffer deletion commands.
- Improved descriptions for clarity and consistency across all buffer-related
  mappings.
This commit is contained in:
majinjie 2025-02-14 20:08:13 +08:00
parent 45d94b3197
commit 707b6a2592

View file

@ -31,16 +31,22 @@ map("v", "<A-j>", ":<C-u>execute \"'<,'>move '>+\" . v:count1<cr>gv=gv", { desc
map("v", "<A-k>", ":<C-u>execute \"'<,'>move '<-\" . (v:count1 + 1)<cr>gv=gv", { desc = "Move Up" }) map("v", "<A-k>", ":<C-u>execute \"'<,'>move '<-\" . (v:count1 + 1)<cr>gv=gv", { desc = "Move Up" })
-- buffers -- buffers
map("n", "<S-h>", "<cmd>bprevious<cr>", { desc = "Prev Buffer" }) map("n", "<S-h>", "<cmd>execute 'bprevious' . v:count1<cr>", { desc = "Prev Buffer" })
map("n", "<S-l>", "<cmd>bnext<cr>", { desc = "Next Buffer" }) map("n", "<S-l>", "<cmd>execute 'bnext' . v:count1<cr>", { desc = "Next Buffer" })
map("n", "[b", "<cmd>bprevious<cr>", { desc = "Prev Buffer" }) map("n", "[b", "<cmd>execute 'bprevious' . v:count1<cr>", { desc = "Prev Buffer" })
map("n", "]b", "<cmd>bnext<cr>", { desc = "Next Buffer" }) map("n", "]b", "<cmd>execute 'bnext' . v:count1<cr>", { desc = "Next Buffer" })
map("n", "<leader>bb", "<cmd>e #<cr>", { desc = "Switch to Other Buffer" }) map("n", "<leader>bb", "<cmd>e #<cr>", { desc = "Switch to Other Buffer" })
map("n", "<leader>`", "<cmd>e #<cr>", { desc = "Switch to Other Buffer" }) map("n", "<leader>`", "<cmd>e #<cr>", { desc = "Switch to Other Buffer" })
map("n", "<leader>bd", function() map("n", "<leader>bd", function()
Snacks.bufdelete() Snacks.bufdelete()
end, { desc = "Delete Buffer" }) end, { desc = "Delete Buffer" })
map("n", "<leader>bo", function() map("n", "<leader>bo", function()
local tab_buflist = vim.fn.tabpagebuflist()
Snacks.bufdelete(function(buf)
return not vim.list_contains(tab_buflist, buf)
end)
end, { desc = "Delete Buffers other than the current layout" })
map("n", "<leader>bO", function()
Snacks.bufdelete.other() Snacks.bufdelete.other()
end, { desc = "Delete Other Buffers" }) end, { desc = "Delete Other Buffers" })
map("n", "<leader>bD", "<cmd>:bd<cr>", { desc = "Delete Buffer and Window" }) map("n", "<leader>bD", "<cmd>:bd<cr>", { desc = "Delete Buffer and Window" })