-- keymaps.lua - 键位映射配置 local map = vim.keymap.set local opts = { noremap = true, silent = true } -- 插入模式退出 map("i", "jk", "", opts) -- 保存和退出 map("n", "w", "w", { desc = "保存文件" }) map("n", "q", "q", { desc = "退出" }) map("n", "Q", "qa", { desc = "退出全部" }) -- 清除搜索高亮 map("n", "h", "nohlsearch", { desc = "清除搜索高亮" }) -- 缩进保持选中 map("v", "<", "", ">gv", opts) -- 上下移动选中文本 map("v", "J", ":m '>+1gv=gv", { desc = "向下移动选中" }) map("v", "K", ":m '<-2gv=gv", { desc = "向上移动选中" }) -- 粘贴不覆盖寄存器 map("x", "p", [["_dP]], { desc = "粘贴不覆盖寄存器" }) -- 删除到黑洞寄存器 map({ "n", "v" }, "d", [["_d]], { desc = "删除到黑洞寄存器" }) -- 快速移动(保持居中) map("n", "J", "mzJ`z", { desc = "连接行" }) map("n", "", "zz", { desc = "向下翻页居中" }) map("n", "", "zz", { desc = "向上翻页居中" }) map("n", "n", "nzzzv", { desc = "下一个结果居中" }) map("n", "N", "Nzzzv", { desc = "上一个结果居中" }) -- 窗口导航 map("n", "", "h", { desc = "左窗口" }) map("n", "", "j", { desc = "下窗口" }) map("n", "", "k", { desc = "上窗口" }) map("n", "", "l", { desc = "右窗口" }) -- 窗口分割 map("n", "sv", "vsplit", { desc = "垂直分割" }) map("n", "sh", "split", { desc = "水平分割" }) map("n", "se", "=", { desc = "均分窗口" }) map("n", "sx", "close", { desc = "关闭窗口" }) -- 调整窗口大小 map("n", "", "resize +2", { desc = "增加高度" }) map("n", "", "resize -2", { desc = "减少高度" }) map("n", "", "vertical resize -2", { desc = "减少宽度" }) map("n", "", "vertical resize +2", { desc = "增加宽度" }) -- 终端模式 map("t", "", "", { desc = "退出终端模式" }) map("t", "jk", "", { desc = "退出终端模式" }) map("t", "", "h", opts) map("t", "", "j", opts) map("t", "", "k", opts) map("t", "", "l", opts) -- 实用工具 map("n", "r", [[:%s/\<\>//gI]], { desc = "替换当前单词" }) map("n", "x", "!chmod +x %", { desc = "使文件可执行", silent = true }) -- 命令行历史 map("c", "", "", { desc = "下一条命令" }) map("c", "", "", { desc = "上一条命令" }) -- 更好的搜索 map("n", "g/", "/\\<\\>", { desc = "搜索单词" })