---@type vim.keymap.set.Opts local opt = { silent = true, noremap = true } require("user.utils").keymaps_set({ ---disable keymaps -- `s` and `S` same is `cl`, `cc` and `C` " { mode = { "n", "x" }, lhs = [[s]], rhs = [[]], opts = opt, }, { mode = { "n", "x" }, lhs = [[S]], rhs = [[]], opts = opt, }, -- unuse marker { mode = { "n", "x" }, lhs = [[m]], rhs = [[]], opts = opt, }, { mode = { "n", "x" }, lhs = [[']], rhs = [[]], opts = opt, }, { mode = { "n", "x" }, lhs = [[`]], rhs = [[]], opts = opt, }, { -- disable move left after space mode = { "n", "x" }, lhs = [[]], rhs = [[]], opts = opt, }, ---Window control keymaps { mode = { "n" }, lhs = [[w]], rhs = [[(Window)]], opts = { noremap = true }, }, -- Commands of move between window. { mode = { "n" }, lhs = [[(Window)h]], rhs = [[h]], opts = opt, }, { mode = { "n" }, lhs = [[(Window)j]], rhs = [[j]], opts = opt, }, { mode = { "n" }, lhs = [[(Window)k]], rhs = [[k]], opts = opt, }, { mode = { "n" }, lhs = [[(Window)l]], rhs = [[l]], opts = opt, }, -- Commands of move window. { mode = { "n" }, lhs = [[(Window)H]], rhs = [[H]], opts = opt, }, { mode = { "n" }, lhs = [[(Window)J]], rhs = [[J]], opts = opt, }, { mode = { "n" }, lhs = [[(Window)K]], rhs = [[K]], opts = opt, }, { mode = { "n" }, lhs = [[(Window)L]], rhs = [[L]], opts = opt, }, -- Tab page controls. { mode = { "n" }, lhs = [[(Window)tn]], rhs = function() vim.cmd.tabnew() end, opts = opt, }, { mode = { "n" }, lhs = [[(Window)tT]], rhs = [[T]], opts = opt, }, { -- Commands of close window. mode = { "n" }, lhs = [[(Window)q]], rhs = [[q]], opts = opt, }, { -- easy save. save file only when changed. mode = { "n" }, lhs = [[(Window)w]], rhs = function() vim.cmd.update() end, opts = opt, }, -- Commands of Window split. { mode = { "n" }, lhs = [[(Window)s]], rhs = [[s]], opts = opt, }, { mode = { "n" }, lhs = [[(Window)v]], rhs = [[v]], opts = opt, }, { mode = { "n" }, lhs = [[(Window)n]], rhs = [[n]], opts = opt, }, -- Window size controls. { mode = { "n" }, lhs = [[(Window)|]], rhs = [[|]], opts = opt, }, { mode = { "n" }, lhs = [[(Window)_]], rhs = [[_]], opts = opt, }, { mode = { "n" }, lhs = [[(Window)=]], rhs = [[=]], opts = opt, }, { mode = { "n" }, lhs = [[]], rhs = [[<]], opts = opt, }, { mode = { "n" }, lhs = [[]], rhs = [[>]], opts = opt, }, { mode = { "n" }, lhs = [[]], rhs = [[-]], opts = opt, }, { mode = { "n" }, lhs = [[]], rhs = [[+]], opts = opt, }, -- QuickFix { mode = { "n" }, lhs = [=[[q]=], rhs = function() vim.cmd.cprevious() end, opts = opt, }, { mode = { "n" }, lhs = [=[]q]=], rhs = function() vim.cmd.cnext() end, opts = opt, }, { mode = { "n" }, lhs = [=[[Q]=], rhs = function() vim.cmd.cfirst() end, opts = opt, }, { mode = { "n" }, lhs = [=[]Q]=], rhs = function() vim.cmd.clast() end, opts = opt, }, -- Buffer { mode = { "n" }, lhs = [=[[b]=], rhs = function() vim.cmd.bprevious() end, opts = opt, }, { mode = { "n" }, lhs = [=[]b]=], rhs = function() vim.cmd.bnext() end, opts = opt, }, { mode = { "n" }, lhs = [=[[B]=], rhs = function() vim.cmd.bfirst() end, opts = opt, }, { mode = { "n" }, lhs = [=[]B]=], rhs = function() vim.cmd.blast() end, opts = opt, }, -- Tab { mode = { "n" }, lhs = [=[[t]=], rhs = function() vim.cmd.tabprevious() end, opts = opt, }, { mode = { "n" }, lhs = [=[]t]=], rhs = function() vim.cmd.tabnext() end, opts = opt, }, { mode = { "n" }, lhs = [=[[T]=], rhs = function() vim.cmd.tabfirst() end, opts = opt, }, { mode = { "n" }, lhs = [=[]T]=], rhs = function() vim.cmd.tablast() end, opts = opt, }, -- Do not save the things erased by x and c in the register. { mode = { "n", "x" }, lhs = [[x]], rhs = [["_x]], opts = opt, }, { mode = { "n", "x" }, lhs = [[X]], rhs = [["_X]], opts = opt, }, { mode = { "n", "x" }, lhs = [[c]], rhs = [["_c]], opts = opt, }, { mode = { "n", "x" }, lhs = [[C]], rhs = [["_C]], opts = opt, }, -- Macro record keymap. { mode = { "n", "x" }, lhs = [[]], rhs = [[q]], opts = opt, }, { mode = { "n", "x" }, lhs = [[q]], rhs = [[]], opts = opt, }, -- Utils { mode = { "n" }, lhs = [[gf]], rhs = [[gF]], opts = opt, }, { mode = { "x" }, lhs = [[P]], rhs = [[p]], opts = opt, }, { mode = { "x" }, lhs = [[p]], rhs = [[P]], opts = opt, }, { mode = { "n", "x" }, lhs = [[0]], rhs = [[^]], opts = opt, }, { mode = { "n", "x" }, lhs = [[^]], rhs = [[0]], opts = opt, }, { mode = { "i" }, lhs = [[jj]], rhs = [[]], opts = opt, }, { mode = { "c" }, lhs = [[jj]], rhs = [[]], opts = { noremap = true }, }, { mode = { "i" }, lhs = [[]], rhs = [[]], opts = opt, }, { mode = { "c" }, lhs = [[]], rhs = [[]], opts = { noremap = true }, }, { mode = { "i" }, lhs = [[]], rhs = [[U]], opts = opt, }, -- Cmdline mode cursor move emacs like {{{ { mode = { "c" }, lhs = [[]], rhs = [[]], opts = { noremap = true }, }, { mode = { "c" }, lhs = [[]], rhs = [[]], opts = { noremap = true }, }, { mode = { "c" }, lhs = [[]], rhs = [[]], opts = { noremap = true }, }, { mode = { "c" }, lhs = [[]], rhs = [[]], opts = { noremap = true }, }, -- Operator { mode = { "o", "x" }, lhs = [[a']], rhs = [[2i']], opts = opt, }, { mode = { "o", "x" }, lhs = [[a"]], rhs = [[2i"]], opts = opt, }, { mode = { "o", "x" }, lhs = [[a`]], rhs = [[2i`]], opts = opt, }, { mode = { "o", "x" }, lhs = [[a]], rhs = [[aW]], opts = opt, }, { mode = { "o", "x" }, lhs = [[i]], rhs = [[iW]], opts = opt, }, })