This commit is contained in:
2026-09-25 20:54:28 +08:00
parent 88c9035c43
commit 07532d215f
33 changed files with 843 additions and 628 deletions
+30 -3
View File
@@ -79,9 +79,36 @@ keymap("n", "<leader>sv", "<cmd>vsplit<cr>", { desc = "垂直分屏" })
keymap("n", "<leader>sh", "<cmd>split<cr>", { desc = "水平分屏" })
keymap("n", "<leader>sc", "<cmd>close<cr>", { desc = "关闭窗口" })
-- Buffer 导航
keymap("n", "<S-h>", "<cmd>bprevious<cr>", { desc = "下一个 buffer" })
keymap("n", "<S-l>", "<cmd>bnext<cr>", { desc = "上一个 buffer" })
-- Buffer 导航(跳过终端类 buffer)
local function skip_terminal_buffers(direction)
local bufs = vim.api.nvim_list_bufs()
-- 收集所有可显示、非终端、非特殊类型的 buffer
local valid = {}
for _, b in ipairs(bufs) do
if vim.api.nvim_buf_is_loaded(b) and vim.bo[b].buflisted then
local bt = vim.bo[b].buftype
-- 跳过 terminal/nofile/help/quickfix 等
if bt == "" or bt == "acwrite" then
table.insert(valid, b)
end
end
end
if #valid == 0 then return end
-- 找当前 buffer 在 valid 列表中的位置
local current = vim.api.nvim_get_current_buf()
local idx = 1
for i, b in ipairs(valid) do
if b == current then idx = i break end
end
-- 按方向计算下一个(-1 = previous, 1 = next)
local next_idx = (idx + direction - 1) % #valid + 1
vim.api.nvim_set_current_buf(valid[next_idx])
end
keymap("n", "<S-h>", function() skip_terminal_buffers(-1) end, { desc = "上一个 buffer" })
keymap("n", "<S-l>", function() skip_terminal_buffers(1) end, { desc = "下一个 buffer" })
-- Buffer 操作
keymap("n", "<leader>bc", "<cmd>Bdelete<cr>", { desc = "关闭当前 buffer" })