-- define common options local opt = { noremap = true, -- non-recursive silent = true, -- do not show message } local map = vim.api.nvim_set_keymap vim.g.mapleader = "z" -- vim.g.maplocalleader = "\\" map('n', '', ':tabnew', opt) map('n', 'ff', ':FloatermToggle', opt) map('t', 'ff', ':FloatermToggle', opt) map('n', 'g', ':CocCommand git.showBlameDoc', opt) map('v', '', '"+y', opt) map('n', '', '"*p', opt) map("t", "", "h", opt) map("t", "", "j", opt) map("t", "", "k", opt) map("t", "", "l", opt) --tag map("n", "wn", ":tabnew", opt) map("n", "ww", ":tabclose", opt) map("n", "wl", ":tabnext", opt) map("n", "wh", ":tabprevious", opt) -- 取消 s 默认功能 map("n", "s", "", opt) -- windows 分屏快捷键 map("n", "sv", ":vsp", opt) map("n", "sh", ":sp", opt) -- 关闭当前 map("n", "sc", "c", opt) -- 关闭其他 map("n", "so", "o", opt) -- Alt + hjkl 窗口之间跳转 map("n", "", "h", opt) map("n", "", "j", opt) map("n", "", "k", opt) map("n", "", "l", opt) -- 左右比例控制 map("n", "", ":vertical resize -2", opt) map("n", "", ":vertical resize +2", opt) map("n", "s,", ":vertical resize -20", opt) map("n", "s.", ":vertical resize +20", opt) -- 上下比例 map("n", "sj", ":resize +10", opt) map("n", "sk", ":resize -10", opt) map("n", "", ":resize +2", opt) map("n", "", ":resize -2", opt) -- 等比例 map("n", "s=", "=", opt) -- 上下滚动浏览 map("n", "", "4j", opt) map("n", "", "4k", opt) -- ctrl u / ctrl + d 只移动9行,默认移动半屏 map("n", "", "9k", opt) map("n", "", "9j", opt) -- 退出 map("n", "q", ":q", opt) map("n", "qq", ":q!", opt) map("n", "Q", ":qa!", opt) map("n", "ww", ":w!", opt) -- insert 模式下,跳到行首行尾 map("i", "", "I", opt) map("i", "", "A", opt) -- 插件快捷键 local pluginKeys = {} -- nvim-tree -- alt + m 键打开关闭tree map("n", "", ":NvimTreeToggle", opt) -- 列表快捷键 pluginKeys.nvimTreeList = { -- 打开文件或文件夹 { key = {"", "o", "<2-LeftMouse>"}, action = "edit" }, -- 分屏打开文件 { key = "v", action = "vsplit" }, { key = "h", action = "split" }, -- 显示隐藏文件 { key = "i", action = "toggle_custom" }, -- 对应 filters 中的 custom (node_modules) { key = ".", action = "toggle_dotfiles" }, -- Hide (dotfiles) -- 文件操作 { key = "s", action = "refresh" }, { key = "a", action = "create" }, { key = "d", action = "remove" }, { key = "r", action = "rename" }, { key = "x", action = "cut" }, { key = "c", action = "copy" }, { key = "p", action = "paste" }, { key = "o", action = "system_open" }, } return pluginKeys