101 lines
2.8 KiB
Lua
101 lines
2.8 KiB
Lua
-- 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', '<F5>', '<Esc>:tabnew<CR>', opt)
|
|
map('n', 'ff', '<Esc>:FloatermToggle<CR>', opt)
|
|
map('t', 'ff', ':FloatermToggle<CR>', opt)
|
|
map('n', '<leader>g', '<Esc>:CocCommand git.showBlameDoc<CR>', opt)
|
|
map('v', '<C-S-c>', '"+y', opt)
|
|
map('n', '<C-S-v>', '"*p', opt)
|
|
|
|
map("t", "<A-h>", "<C-w>h", opt)
|
|
map("t", "<A-j>", "<C-w>j", opt)
|
|
map("t", "<A-k>", "<C-w>k", opt)
|
|
map("t", "<A-l>", "<C-w>l", opt)
|
|
|
|
--tag
|
|
map("n", "wn", ":tabnew<CR>", opt)
|
|
map("n", "ww", ":tabclose<CR>", opt)
|
|
map("n", "wl", ":tabnext<CR>", opt)
|
|
map("n", "wh", ":tabprevious<CR>", opt)
|
|
|
|
-- 取消 s 默认功能
|
|
map("n", "s", "", opt)
|
|
-- windows 分屏快捷键
|
|
map("n", "sv", ":vsp<CR>", opt)
|
|
map("n", "sh", ":sp<CR>", opt)
|
|
-- 关闭当前
|
|
map("n", "sc", "<C-w>c", opt)
|
|
-- 关闭其他
|
|
map("n", "so", "<C-w>o", opt)
|
|
-- Alt + hjkl 窗口之间跳转
|
|
map("n", "<A-h>", "<C-w>h", opt)
|
|
map("n", "<A-j>", "<C-w>j", opt)
|
|
map("n", "<A-k>", "<C-w>k", opt)
|
|
map("n", "<A-l>", "<C-w>l", opt)
|
|
|
|
-- 左右比例控制
|
|
map("n", "<C-Left>", ":vertical resize -2<CR>", opt)
|
|
map("n", "<C-Right>", ":vertical resize +2<CR>", opt)
|
|
map("n", "s,", ":vertical resize -20<CR>", opt)
|
|
map("n", "s.", ":vertical resize +20<CR>", opt)
|
|
-- 上下比例
|
|
map("n", "sj", ":resize +10<CR>", opt)
|
|
map("n", "sk", ":resize -10<CR>", opt)
|
|
map("n", "<C-Down>", ":resize +2<CR>", opt)
|
|
map("n", "<C-Up>", ":resize -2<CR>", opt)
|
|
-- 等比例
|
|
map("n", "s=", "<C-w>=", opt)
|
|
|
|
|
|
-- 上下滚动浏览
|
|
map("n", "<C-j>", "4j", opt)
|
|
map("n", "<C-k>", "4k", opt)
|
|
-- ctrl u / ctrl + d 只移动9行,默认移动半屏
|
|
map("n", "<C-u>", "9k", opt)
|
|
map("n", "<C-d>", "9j", opt)
|
|
|
|
-- 退出
|
|
map("n", "q", ":q<CR>", opt)
|
|
map("n", "qq", ":q!<CR>", opt)
|
|
map("n", "Q", ":qa!<CR>", opt)
|
|
|
|
-- insert 模式下,跳到行首行尾
|
|
map("i", "<C-h>", "<ESC>I", opt)
|
|
map("i", "<C-l>", "<ESC>A", opt)
|
|
|
|
-- 插件快捷键
|
|
local pluginKeys = {}
|
|
|
|
-- nvim-tree
|
|
-- alt + m 键打开关闭tree
|
|
map("n", "<A-m>", ":NvimTreeToggle<CR>", opt)
|
|
-- 列表快捷键
|
|
pluginKeys.nvimTreeList = {
|
|
-- 打开文件或文件夹
|
|
{ key = {"<CR>", "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 = "<F5>", 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 = "s", action = "system_open" },
|
|
}
|
|
return pluginKeys
|