update dotfiles

This commit is contained in:
2026-07-19 19:36:54 +08:00
parent b4010fe910
commit aef001a855
38 changed files with 1680 additions and 826 deletions
+74
View File
@@ -0,0 +1,74 @@
-- =============================================================================
-- keymaps.lua — 基础键位映射
-- =============================================================================
local keymap = vim.keymap.set
-- Leader 键
vim.g.mapleader = " "
vim.g.maplocalleader = " "
-- 编辑器操作
keymap("n", "<leader>w", "<cmd>w<cr>", { desc = "保存" })
-- 关闭当前 buffer / 窗口(VSCode 风格)
-- - quickfix 窗口:cclosecmake-tools 输出窗口)
-- - 普通文件:统计文件 buffer 数量
-- - 只剩 1 个文件 buffer → 退出 nvim(不留下 "no name" 空白)
-- - 多个文件 buffer → Bdelete 关闭当前标签
-- - 其他特殊 buffer(终端等):直接关闭窗口
keymap("n", "<leader>q", function()
local bt = vim.bo.buftype
local ft = vim.bo.filetype
if bt == "quickfix" then
vim.cmd("cclose")
return
end
if bt ~= "" then
vim.cmd("close")
return
end
-- 统计文件 buffer 数量(排除 nvim-tree/dashboard/quickfix/terminal 等)
local file_bufs = 0
for _, bufnr in ipairs(vim.api.nvim_list_bufs()) do
if vim.api.nvim_buf_is_loaded(bufnr) then
local b = vim.bo[bufnr]
if b.buftype == "" and b.filetype ~= "" then
file_bufs = file_bufs + 1
end
end
end
if file_bufs <= 1 then
vim.cmd("qa")
else
vim.cmd("Bdelete")
end
end, { desc = "关闭当前 buffer/窗口" })
keymap("n", "<leader>/", "<cmd>noh<cr>", { desc = "清除搜索高亮" })
-- 窗口导航
keymap("n", "<C-h>", "<C-w>h", { desc = "跳到左边窗口" })
keymap("n", "<C-j>", "<C-w>j", { desc = "跳到下面窗口" })
keymap("n", "<C-k>", "<C-w>k", { desc = "跳到上面窗口" })
keymap("n", "<C-l>", "<C-w>l", { desc = "跳到右边窗口" })
-- 窗口操作
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>bnext<cr>", { desc = "下一个 buffer" })
keymap("n", "<S-l>", "<cmd>bprevious<cr>", { desc = "上一个 buffer" })
-- 文件树
keymap("n", "<leader>e", "<cmd>NvimTreeToggle<cr>", { desc = "文件树" })
-- 终端
keymap("n", "<c-`>", "<cmd>ToggleTerm<cr>", { desc = "终端" })
keymap("t", "<c-`>", "<cmd>ToggleTerm<cr>", { desc = "终端" })